#region License
/* Copyright (C) 2009 Tim Coulter
 * 
 * This file is part of ExtremeML.
 * 
 * ExtremeML is free software: you can redistribute
 * it and/or modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 * 
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
 * the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
*/
#endregion

using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using ExtremeML.Core;
using ExtremeML.Packaging;
using ExtremeML.Spreadsheet;

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Workbook"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Workbook>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Workbook"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Workbook wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Workbook"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FileVersionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FileVersionWrapper FileVersion { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FileSharingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FileSharingWrapper FileSharing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WorkbookPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WorkbookPropertiesWrapper WorkbookProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WorkbookProtectionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WorkbookProtectionWrapper WorkbookProtection { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BookViewsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BookViewsWrapper BookViews { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetsWrapper Sheets { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FunctionGroupsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FunctionGroupsWrapper FunctionGroups { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExternalReferencesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExternalReferencesWrapper ExternalReferences { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DefinedNamesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DefinedNamesWrapper DefinedNames { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CalculationPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CalculationPropertiesWrapper CalculationProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OleSizeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OleSizeWrapper OleSize { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomWorkbookViewsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomWorkbookViewsWrapper CustomWorkbookViews { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotCachesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotCachesWrapper PivotCaches { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SmartTagPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SmartTagPropertiesWrapper SmartTagProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SmartTagTypesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SmartTagTypesWrapper SmartTagTypes { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WebPublishingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WebPublishingWrapper WebPublishing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WebPublishObjectsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WebPublishObjectsWrapper WebPublishObjects { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WorkbookExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WorkbookExtensionListWrapper WorkbookExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapperCollection FileRecoveryPropertySets { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			FileVersion = new ExtremeML.Spreadsheet.FileVersionWrapper(null, this, Package);
			FileSharing = new ExtremeML.Spreadsheet.FileSharingWrapper(null, this, Package);
			WorkbookProperties = new ExtremeML.Spreadsheet.WorkbookPropertiesWrapper(null, this, Package);
			WorkbookProtection = new ExtremeML.Spreadsheet.WorkbookProtectionWrapper(null, this, Package);
			BookViews = new ExtremeML.Spreadsheet.BookViewsWrapper(null, this, Package);
			Sheets = new ExtremeML.Spreadsheet.SheetsWrapper(null, this, Package);
			FunctionGroups = new ExtremeML.Spreadsheet.FunctionGroupsWrapper(null, this, Package);
			ExternalReferences = new ExtremeML.Spreadsheet.ExternalReferencesWrapper(null, this, Package);
			DefinedNames = new ExtremeML.Spreadsheet.DefinedNamesWrapper(null, this, Package);
			CalculationProperties = new ExtremeML.Spreadsheet.CalculationPropertiesWrapper(null, this, Package);
			OleSize = new ExtremeML.Spreadsheet.OleSizeWrapper(null, this, Package);
			CustomWorkbookViews = new ExtremeML.Spreadsheet.CustomWorkbookViewsWrapper(null, this, Package);
			PivotCaches = new ExtremeML.Spreadsheet.PivotCachesWrapper(null, this, Package);
			SmartTagProperties = new ExtremeML.Spreadsheet.SmartTagPropertiesWrapper(null, this, Package);
			SmartTagTypes = new ExtremeML.Spreadsheet.SmartTagTypesWrapper(null, this, Package);
			WebPublishing = new ExtremeML.Spreadsheet.WebPublishingWrapper(null, this, Package);
			WebPublishObjects = new ExtremeML.Spreadsheet.WebPublishObjectsWrapper(null, this, Package);
			WorkbookExtensionList = new ExtremeML.Spreadsheet.WorkbookExtensionListWrapper(null, this, Package);
			FileRecoveryPropertySets = new ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			FileRecoveryPropertySets = new ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapperCollection(Wrapped, this, Package);
			FileVersion = new ExtremeML.Spreadsheet.FileVersionWrapper(Wrapped.FileVersion, this, Package);
			FileSharing = new ExtremeML.Spreadsheet.FileSharingWrapper(Wrapped.FileSharing, this, Package);
			WorkbookProperties = new ExtremeML.Spreadsheet.WorkbookPropertiesWrapper(Wrapped.WorkbookProperties, this, Package);
			WorkbookProtection = new ExtremeML.Spreadsheet.WorkbookProtectionWrapper(Wrapped.WorkbookProtection, this, Package);
			BookViews = new ExtremeML.Spreadsheet.BookViewsWrapper(Wrapped.BookViews, this, Package);
			Sheets = new ExtremeML.Spreadsheet.SheetsWrapper(Wrapped.Sheets, this, Package);
			FunctionGroups = new ExtremeML.Spreadsheet.FunctionGroupsWrapper(Wrapped.FunctionGroups, this, Package);
			ExternalReferences = new ExtremeML.Spreadsheet.ExternalReferencesWrapper(Wrapped.ExternalReferences, this, Package);
			DefinedNames = new ExtremeML.Spreadsheet.DefinedNamesWrapper(Wrapped.DefinedNames, this, Package);
			CalculationProperties = new ExtremeML.Spreadsheet.CalculationPropertiesWrapper(Wrapped.CalculationProperties, this, Package);
			OleSize = new ExtremeML.Spreadsheet.OleSizeWrapper(Wrapped.OleSize, this, Package);
			CustomWorkbookViews = new ExtremeML.Spreadsheet.CustomWorkbookViewsWrapper(Wrapped.CustomWorkbookViews, this, Package);
			PivotCaches = new ExtremeML.Spreadsheet.PivotCachesWrapper(Wrapped.PivotCaches, this, Package);
			SmartTagProperties = new ExtremeML.Spreadsheet.SmartTagPropertiesWrapper(Wrapped.SmartTagProperties, this, Package);
			SmartTagTypes = new ExtremeML.Spreadsheet.SmartTagTypesWrapper(Wrapped.SmartTagTypes, this, Package);
			WebPublishing = new ExtremeML.Spreadsheet.WebPublishingWrapper(Wrapped.WebPublishing, this, Package);
			WebPublishObjects = new ExtremeML.Spreadsheet.WebPublishObjectsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects>(), this, Package);
			WorkbookExtensionList = new ExtremeML.Spreadsheet.WorkbookExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Workbook"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.Workbook wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				FileRecoveryPropertySets.Recompose(result);
				result.FileVersion = FileVersion.Recompose();
				result.FileSharing = FileSharing.Recompose();
				result.WorkbookProperties = WorkbookProperties.Recompose();
				result.WorkbookProtection = WorkbookProtection.Recompose();
				result.BookViews = BookViews.Recompose();
				result.Sheets = Sheets.Recompose();
				result.FunctionGroups = FunctionGroups.Recompose();
				result.ExternalReferences = ExternalReferences.Recompose();
				result.DefinedNames = DefinedNames.Recompose();
				result.CalculationProperties = CalculationProperties.Recompose();
				result.OleSize = OleSize.Recompose();
				result.CustomWorkbookViews = CustomWorkbookViews.Recompose();
				result.PivotCaches = PivotCaches.Recompose();
				result.SmartTagProperties = SmartTagProperties.Recompose();
				result.SmartTagTypes = SmartTagTypes.Recompose();
				result.WebPublishing = WebPublishing.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects>();
				result.AppendChild(WebPublishObjects.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList>();
				result.AppendChild(WorkbookExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return FileVersion;
			yield return FileSharing;
			yield return WorkbookProperties;
			yield return WorkbookProtection;
			yield return BookViews;
			yield return Sheets;
			yield return FunctionGroups;
			yield return ExternalReferences;
			yield return DefinedNames;
			yield return CalculationProperties;
			yield return OleSize;
			yield return CustomWorkbookViews;
			yield return PivotCaches;
			yield return SmartTagProperties;
			yield return SmartTagTypes;
			yield return WebPublishing;
			yield return WebPublishObjects;
			yield return WorkbookExtensionList;
			yield return FileRecoveryPropertySets;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.BookViews"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BookViewsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.BookViews>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="BookViewsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.BookViews"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BookViewsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.BookViews wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.BookViews"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WorkbookViewWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WorkbookViewWrapperCollection WorkbookViews { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			WorkbookViews = new ExtremeML.Spreadsheet.WorkbookViewWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			WorkbookViews = new ExtremeML.Spreadsheet.WorkbookViewWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.BookViews"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.BookViews Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.BookViews();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				WorkbookViews.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return WorkbookViews;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookViewWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WorkbookView>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues> _visibility;
		private Nullable<bool> _minimized;
		private Nullable<bool> _showHorizontalScroll;
		private Nullable<bool> _showVerticalScroll;
		private Nullable<bool> _showSheetTabs;
		private Nullable<int> _xWindow;
		private Nullable<int> _yWindow;
		private Nullable<uint> _windowWidth;
		private Nullable<uint> _windowHeight;
		private Nullable<uint> _tabRatio;
		private Nullable<uint> _firstSheet;
		private Nullable<uint> _activeTab;
		private Nullable<bool> _autoFilterDateGrouping;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookViewWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookViewWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WorkbookView wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Visibility"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues> Visibility
		{
			get { return _visibility; }
			set { OnVisibilityPropertyChanging(ref value, _visibility); SetModified(value, _visibility); _visibility = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Minimized"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> Minimized
		{
			get { return _minimized; }
			set { OnMinimizedPropertyChanging(ref value, _minimized); SetModified(value, _minimized); _minimized = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowHorizontalScroll"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowHorizontalScroll
		{
			get { return _showHorizontalScroll; }
			set { OnShowHorizontalScrollPropertyChanging(ref value, _showHorizontalScroll); SetModified(value, _showHorizontalScroll); _showHorizontalScroll = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowVerticalScroll"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowVerticalScroll
		{
			get { return _showVerticalScroll; }
			set { OnShowVerticalScrollPropertyChanging(ref value, _showVerticalScroll); SetModified(value, _showVerticalScroll); _showVerticalScroll = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowSheetTabs"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowSheetTabs
		{
			get { return _showSheetTabs; }
			set { OnShowSheetTabsPropertyChanging(ref value, _showSheetTabs); SetModified(value, _showSheetTabs); _showSheetTabs = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<int> XWindow
		{
			get { return _xWindow; }
			set { OnXWindowPropertyChanging(ref value, _xWindow); SetModified(value, _xWindow); _xWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="YWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<int> YWindow
		{
			get { return _yWindow; }
			set { OnYWindowPropertyChanging(ref value, _yWindow); SetModified(value, _yWindow); _yWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WindowWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> WindowWidth
		{
			get { return _windowWidth; }
			set { OnWindowWidthPropertyChanging(ref value, _windowWidth); SetModified(value, _windowWidth); _windowWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WindowHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> WindowHeight
		{
			get { return _windowHeight; }
			set { OnWindowHeightPropertyChanging(ref value, _windowHeight); SetModified(value, _windowHeight); _windowHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TabRatio"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> TabRatio
		{
			get { return _tabRatio; }
			set { OnTabRatioPropertyChanging(ref value, _tabRatio); SetModified(value, _tabRatio); _tabRatio = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FirstSheet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> FirstSheet
		{
			get { return _firstSheet; }
			set { OnFirstSheetPropertyChanging(ref value, _firstSheet); SetModified(value, _firstSheet); _firstSheet = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveTab"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> ActiveTab
		{
			get { return _activeTab; }
			set { OnActiveTabPropertyChanging(ref value, _activeTab); SetModified(value, _activeTab); _activeTab = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFilterDateGrouping"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> AutoFilterDateGrouping
		{
			get { return _autoFilterDateGrouping; }
			set { OnAutoFilterDateGroupingPropertyChanging(ref value, _autoFilterDateGrouping); SetModified(value, _autoFilterDateGrouping); _autoFilterDateGrouping = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnVisibilityPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues> original);
		partial void OnMinimizedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowHorizontalScrollPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowVerticalScrollPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowSheetTabsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXWindowPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnYWindowPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnWindowWidthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWindowHeightPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTabRatioPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFirstSheetPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnActiveTabPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnAutoFilterDateGroupingPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_visibility = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues>);
			_minimized = default(Nullable<bool>);
			_showHorizontalScroll = default(Nullable<bool>);
			_showVerticalScroll = default(Nullable<bool>);
			_showSheetTabs = default(Nullable<bool>);
			_xWindow = default(Nullable<int>);
			_yWindow = default(Nullable<int>);
			_windowWidth = default(Nullable<uint>);
			_windowHeight = default(Nullable<uint>);
			_tabRatio = default(Nullable<uint>);
			_firstSheet = default(Nullable<uint>);
			_activeTab = default(Nullable<uint>);
			_autoFilterDateGrouping = default(Nullable<bool>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_minimized = Wrapped.Minimized == null ? null : Wrapped.Minimized.ToNullable();
			_showHorizontalScroll = Wrapped.ShowHorizontalScroll == null ? null : Wrapped.ShowHorizontalScroll.ToNullable();
			_showVerticalScroll = Wrapped.ShowVerticalScroll == null ? null : Wrapped.ShowVerticalScroll.ToNullable();
			_showSheetTabs = Wrapped.ShowSheetTabs == null ? null : Wrapped.ShowSheetTabs.ToNullable();
			_xWindow = Wrapped.XWindow == null ? null : Wrapped.XWindow.ToNullable();
			_yWindow = Wrapped.YWindow == null ? null : Wrapped.YWindow.ToNullable();
			_windowWidth = Wrapped.WindowWidth == null ? null : Wrapped.WindowWidth.ToNullable();
			_windowHeight = Wrapped.WindowHeight == null ? null : Wrapped.WindowHeight.ToNullable();
			_tabRatio = Wrapped.TabRatio == null ? null : Wrapped.TabRatio.ToNullable();
			_firstSheet = Wrapped.FirstSheet == null ? null : Wrapped.FirstSheet.ToNullable();
			_activeTab = Wrapped.ActiveTab == null ? null : Wrapped.ActiveTab.ToNullable();
			_autoFilterDateGrouping = Wrapped.AutoFilterDateGrouping == null ? null : Wrapped.AutoFilterDateGrouping.ToNullable();
			if (Wrapped.Visibility != null) _visibility = Wrapped.Visibility;
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookView"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WorkbookView Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WorkbookView();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Visibility = _visibility;
				result.Minimized = _minimized.HasValue ? _minimized.ToBooleanValue() : null;
				result.ShowHorizontalScroll = _showHorizontalScroll.HasValue ? _showHorizontalScroll.ToBooleanValue() : null;
				result.ShowVerticalScroll = _showVerticalScroll.HasValue ? _showVerticalScroll.ToBooleanValue() : null;
				result.ShowSheetTabs = _showSheetTabs.HasValue ? _showSheetTabs.ToBooleanValue() : null;
				result.XWindow = _xWindow.HasValue ? _xWindow.ToInt32Value() : null;
				result.YWindow = _yWindow.HasValue ? _yWindow.ToInt32Value() : null;
				result.WindowWidth = _windowWidth.HasValue ? _windowWidth.ToUInt32Value() : null;
				result.WindowHeight = _windowHeight.HasValue ? _windowHeight.ToUInt32Value() : null;
				result.TabRatio = _tabRatio.HasValue ? _tabRatio.ToUInt32Value() : null;
				result.FirstSheet = _firstSheet.HasValue ? _firstSheet.ToUInt32Value() : null;
				result.ActiveTab = _activeTab.HasValue ? _activeTab.ToUInt32Value() : null;
				result.AutoFilterDateGrouping = _autoFilterDateGrouping.HasValue ? _autoFilterDateGrouping.ToBooleanValue() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishObjectsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishObjectsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishObjectsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WebPublishObjectWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WebPublishObjectWrapperCollection WebPublishObjects { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			WebPublishObjects = new ExtremeML.Spreadsheet.WebPublishObjectWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			WebPublishObjects = new ExtremeML.Spreadsheet.WebPublishObjectWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WebPublishObjects();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				WebPublishObjects.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return WebPublishObjects;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishObjectWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WebPublishObject>
	{
		private string _localName;
		private Nullable<uint> _id;
		private string _divId;
		private string _sourceObject;
		private string _destinationFile;
		private string _title;
		private Nullable<bool> _autoRepublish;

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishObjectWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishObjectWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WebPublishObject wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DivId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public string DivId
		{
			get { return _divId; }
			set { OnDivIdPropertyChanging(ref value, _divId); SetModified(value, _divId); _divId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SourceObject"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public string SourceObject
		{
			get { return _sourceObject; }
			set { OnSourceObjectPropertyChanging(ref value, _sourceObject); SetModified(value, _sourceObject); _sourceObject = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DestinationFile"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public string DestinationFile
		{
			get { return _destinationFile; }
			set { OnDestinationFilePropertyChanging(ref value, _destinationFile); SetModified(value, _destinationFile); _destinationFile = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Title"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public string Title
		{
			get { return _title; }
			set { OnTitlePropertyChanging(ref value, _title); SetModified(value, _title); _title = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoRepublish"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.
		/// </summary>
		public Nullable<bool> AutoRepublish
		{
			get { return _autoRepublish; }
			set { OnAutoRepublishPropertyChanging(ref value, _autoRepublish); SetModified(value, _autoRepublish); _autoRepublish = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDivIdPropertyChanging(ref string modified, string original);
		partial void OnSourceObjectPropertyChanging(ref string modified, string original);
		partial void OnDestinationFilePropertyChanging(ref string modified, string original);
		partial void OnTitlePropertyChanging(ref string modified, string original);
		partial void OnAutoRepublishPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_divId = default(string);
			_sourceObject = default(string);
			_destinationFile = default(string);
			_title = default(string);
			_autoRepublish = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_divId = Wrapped.DivId == null ? null : Wrapped.DivId.ToString();
			_sourceObject = Wrapped.SourceObject == null ? null : Wrapped.SourceObject.ToString();
			_destinationFile = Wrapped.DestinationFile == null ? null : Wrapped.DestinationFile.ToString();
			_title = Wrapped.Title == null ? null : Wrapped.Title.ToString();
			_autoRepublish = Wrapped.AutoRepublish == null ? null : Wrapped.AutoRepublish.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishObject"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WebPublishObject Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WebPublishObject();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.DivId = _divId == null ? null : StringValue.FromString(_divId);
				result.SourceObject = _sourceObject == null ? null : StringValue.FromString(_sourceObject);
				result.DestinationFile = _destinationFile == null ? null : StringValue.FromString(_destinationFile);
				result.Title = _title == null ? null : StringValue.FromString(_title);
				result.AutoRepublish = _autoRepublish.HasValue ? _autoRepublish.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WebPublishing>
	{
		private string _localName;
		private Nullable<bool> _useCss;
		private Nullable<bool> _thicket;
		private Nullable<bool> _longFileNames;
		private Nullable<bool> _useVml;
		private Nullable<bool> _allowPng;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TargetScreenSizeValues> _targetScreenSize;
		private Nullable<uint> _dpi;
		private Nullable<uint> _codePage;

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WebPublishing wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UseCss"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<bool> UseCss
		{
			get { return _useCss; }
			set { OnUseCssPropertyChanging(ref value, _useCss); SetModified(value, _useCss); _useCss = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Thicket"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<bool> Thicket
		{
			get { return _thicket; }
			set { OnThicketPropertyChanging(ref value, _thicket); SetModified(value, _thicket); _thicket = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LongFileNames"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<bool> LongFileNames
		{
			get { return _longFileNames; }
			set { OnLongFileNamesPropertyChanging(ref value, _longFileNames); SetModified(value, _longFileNames); _longFileNames = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UseVml"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<bool> UseVml
		{
			get { return _useVml; }
			set { OnUseVmlPropertyChanging(ref value, _useVml); SetModified(value, _useVml); _useVml = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AllowPng"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<bool> AllowPng
		{
			get { return _allowPng; }
			set { OnAllowPngPropertyChanging(ref value, _allowPng); SetModified(value, _allowPng); _allowPng = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TargetScreenSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TargetScreenSizeValues> TargetScreenSize
		{
			get { return _targetScreenSize; }
			set { OnTargetScreenSizePropertyChanging(ref value, _targetScreenSize); SetModified(value, _targetScreenSize); _targetScreenSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dpi"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<uint> Dpi
		{
			get { return _dpi; }
			set { OnDpiPropertyChanging(ref value, _dpi); SetModified(value, _dpi); _dpi = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CodePage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.
		/// </summary>
		public Nullable<uint> CodePage
		{
			get { return _codePage; }
			set { OnCodePagePropertyChanging(ref value, _codePage); SetModified(value, _codePage); _codePage = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnUseCssPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnThicketPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLongFileNamesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUseVmlPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAllowPngPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTargetScreenSizePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TargetScreenSizeValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TargetScreenSizeValues> original);
		partial void OnDpiPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCodePagePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_useCss = default(Nullable<bool>);
			_thicket = default(Nullable<bool>);
			_longFileNames = default(Nullable<bool>);
			_useVml = default(Nullable<bool>);
			_allowPng = default(Nullable<bool>);
			_targetScreenSize = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TargetScreenSizeValues>);
			_dpi = default(Nullable<uint>);
			_codePage = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_useCss = Wrapped.UseCss == null ? null : Wrapped.UseCss.ToNullable();
			_thicket = Wrapped.Thicket == null ? null : Wrapped.Thicket.ToNullable();
			_longFileNames = Wrapped.LongFileNames == null ? null : Wrapped.LongFileNames.ToNullable();
			_useVml = Wrapped.UseVml == null ? null : Wrapped.UseVml.ToNullable();
			_allowPng = Wrapped.AllowPng == null ? null : Wrapped.AllowPng.ToNullable();
			_dpi = Wrapped.Dpi == null ? null : Wrapped.Dpi.ToNullable();
			_codePage = Wrapped.CodePage == null ? null : Wrapped.CodePage.ToNullable();
			if (Wrapped.TargetScreenSize != null) _targetScreenSize = Wrapped.TargetScreenSize;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishing"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WebPublishing Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WebPublishing();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.TargetScreenSize = _targetScreenSize;
				result.UseCss = _useCss.HasValue ? _useCss.ToBooleanValue() : null;
				result.Thicket = _thicket.HasValue ? _thicket.ToBooleanValue() : null;
				result.LongFileNames = _longFileNames.HasValue ? _longFileNames.ToBooleanValue() : null;
				result.UseVml = _useVml.HasValue ? _useVml.ToBooleanValue() : null;
				result.AllowPng = _allowPng.HasValue ? _allowPng.ToBooleanValue() : null;
				result.Dpi = _dpi.HasValue ? _dpi.ToUInt32Value() : null;
				result.CodePage = _codePage.HasValue ? _codePage.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCaches"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotCachesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotCaches>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotCachesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCaches"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotCachesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotCaches wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCaches"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotCacheWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotCacheWrapperCollection PivotCaches { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			PivotCaches = new ExtremeML.Spreadsheet.PivotCacheWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			PivotCaches = new ExtremeML.Spreadsheet.PivotCacheWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCaches"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotCaches Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotCaches();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				PivotCaches.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return PivotCaches;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotCacheWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotCache>
	{
		private string _localName;
		private Nullable<uint> _cacheId;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotCacheWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotCacheWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotCache wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CacheId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> instance.
		/// </summary>
		public Nullable<uint> CacheId
		{
			get { return _cacheId; }
			set { OnCacheIdPropertyChanging(ref value, _cacheId); SetModified(value, _cacheId); _cacheId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCacheIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cacheId = default(Nullable<uint>);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cacheId = Wrapped.CacheId == null ? null : Wrapped.CacheId.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotCache"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotCache Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotCache();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CacheId = _cacheId.HasValue ? _cacheId.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FileVersionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FileVersion>
	{
		private string _localName;
		private string _applicationName;
		private string _lastEdited;
		private string _lowestEdited;
		private string _buildVersion;
		private string _codeName;

		/// <summary>
		/// Initializes a new instance of the <see cref="FileVersionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FileVersionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FileVersion wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplicationName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string ApplicationName
		{
			get { return _applicationName; }
			set { OnApplicationNamePropertyChanging(ref value, _applicationName); SetModified(value, _applicationName); _applicationName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LastEdited"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string LastEdited
		{
			get { return _lastEdited; }
			set { OnLastEditedPropertyChanging(ref value, _lastEdited); SetModified(value, _lastEdited); _lastEdited = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LowestEdited"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string LowestEdited
		{
			get { return _lowestEdited; }
			set { OnLowestEditedPropertyChanging(ref value, _lowestEdited); SetModified(value, _lowestEdited); _lowestEdited = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BuildVersion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string BuildVersion
		{
			get { return _buildVersion; }
			set { OnBuildVersionPropertyChanging(ref value, _buildVersion); SetModified(value, _buildVersion); _buildVersion = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CodeName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.
		/// </summary>
		public string CodeName
		{
			get { return _codeName; }
			set { OnCodeNamePropertyChanging(ref value, _codeName); SetModified(value, _codeName); _codeName = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnApplicationNamePropertyChanging(ref string modified, string original);
		partial void OnLastEditedPropertyChanging(ref string modified, string original);
		partial void OnLowestEditedPropertyChanging(ref string modified, string original);
		partial void OnBuildVersionPropertyChanging(ref string modified, string original);
		partial void OnCodeNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_applicationName = default(string);
			_lastEdited = default(string);
			_lowestEdited = default(string);
			_buildVersion = default(string);
			_codeName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_applicationName = Wrapped.ApplicationName == null ? null : Wrapped.ApplicationName.ToString();
			_lastEdited = Wrapped.LastEdited == null ? null : Wrapped.LastEdited.ToString();
			_lowestEdited = Wrapped.LowestEdited == null ? null : Wrapped.LowestEdited.ToString();
			_buildVersion = Wrapped.BuildVersion == null ? null : Wrapped.BuildVersion.ToString();
			_codeName = Wrapped.CodeName == null ? null : Wrapped.CodeName.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FileVersion"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FileVersion Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FileVersion();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ApplicationName = _applicationName == null ? null : StringValue.FromString(_applicationName);
				result.LastEdited = _lastEdited == null ? null : StringValue.FromString(_lastEdited);
				result.LowestEdited = _lowestEdited == null ? null : StringValue.FromString(_lowestEdited);
				result.BuildVersion = _buildVersion == null ? null : StringValue.FromString(_buildVersion);
				result.CodeName = _codeName == null ? null : StringValue.FromString(_codeName);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FileSharingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FileSharing>
	{
		private string _localName;
		private Nullable<bool> _readOnlyRecommended;
		private string _userName;
		private string _reservationPassword;
		private string _algorithmName;
		private string _hashValue;
		private string _saltValue;
		private Nullable<uint> _spinCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="FileSharingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FileSharingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FileSharing wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ReadOnlyRecommended"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public Nullable<bool> ReadOnlyRecommended
		{
			get { return _readOnlyRecommended; }
			set { OnReadOnlyRecommendedPropertyChanging(ref value, _readOnlyRecommended); SetModified(value, _readOnlyRecommended); _readOnlyRecommended = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UserName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string UserName
		{
			get { return _userName; }
			set { OnUserNamePropertyChanging(ref value, _userName); SetModified(value, _userName); _userName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ReservationPassword"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string ReservationPassword
		{
			get { return _reservationPassword; }
			set { OnReservationPasswordPropertyChanging(ref value, _reservationPassword); SetModified(value, _reservationPassword); _reservationPassword = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlgorithmName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string AlgorithmName
		{
			get { return _algorithmName; }
			set { OnAlgorithmNamePropertyChanging(ref value, _algorithmName); SetModified(value, _algorithmName); _algorithmName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HashValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string HashValue
		{
			get { return _hashValue; }
			set { OnHashValuePropertyChanging(ref value, _hashValue); SetModified(value, _hashValue); _hashValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SaltValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public string SaltValue
		{
			get { return _saltValue; }
			set { OnSaltValuePropertyChanging(ref value, _saltValue); SetModified(value, _saltValue); _saltValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SpinCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.
		/// </summary>
		public Nullable<uint> SpinCount
		{
			get { return _spinCount; }
			set { OnSpinCountPropertyChanging(ref value, _spinCount); SetModified(value, _spinCount); _spinCount = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReadOnlyRecommendedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUserNamePropertyChanging(ref string modified, string original);
		partial void OnReservationPasswordPropertyChanging(ref string modified, string original);
		partial void OnAlgorithmNamePropertyChanging(ref string modified, string original);
		partial void OnHashValuePropertyChanging(ref string modified, string original);
		partial void OnSaltValuePropertyChanging(ref string modified, string original);
		partial void OnSpinCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_readOnlyRecommended = default(Nullable<bool>);
			_userName = default(string);
			_reservationPassword = default(string);
			_algorithmName = default(string);
			_hashValue = default(string);
			_saltValue = default(string);
			_spinCount = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_readOnlyRecommended = Wrapped.ReadOnlyRecommended == null ? null : Wrapped.ReadOnlyRecommended.ToNullable();
			_userName = Wrapped.UserName == null ? null : Wrapped.UserName.ToString();
			_reservationPassword = Wrapped.ReservationPassword == null ? null : Wrapped.ReservationPassword.ToString();
			_algorithmName = Wrapped.AlgorithmName == null ? null : Wrapped.AlgorithmName.ToString();
			_hashValue = Wrapped.HashValue == null ? null : Wrapped.HashValue.ToString();
			_saltValue = Wrapped.SaltValue == null ? null : Wrapped.SaltValue.ToString();
			_spinCount = Wrapped.SpinCount == null ? null : Wrapped.SpinCount.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FileSharing"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FileSharing Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FileSharing();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ReadOnlyRecommended = _readOnlyRecommended.HasValue ? _readOnlyRecommended.ToBooleanValue() : null;
				result.UserName = _userName == null ? null : StringValue.FromString(_userName);
				result.ReservationPassword = _reservationPassword == null ? null : HexBinaryValue.FromString(_reservationPassword);
				result.AlgorithmName = _algorithmName == null ? null : StringValue.FromString(_algorithmName);
				result.HashValue = _hashValue == null ? null : Base64BinaryValue.FromString(_hashValue);
				result.SaltValue = _saltValue == null ? null : Base64BinaryValue.FromString(_saltValue);
				result.SpinCount = _spinCount.HasValue ? _spinCount.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties>
	{
		private string _localName;
		private Nullable<bool> _date1904;
		private Nullable<bool> _dateCompatibility;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> _showObjects;
		private Nullable<bool> _showBorderUnselectedTables;
		private Nullable<bool> _filterPrivacy;
		private Nullable<bool> _promptedSolutions;
		private Nullable<bool> _showInkAnnotation;
		private Nullable<bool> _backupFile;
		private Nullable<bool> _saveExternalLinkValues;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.UpdateLinksBehaviorValues> _updateLinks;
		private string _codeName;
		private Nullable<bool> _hidePivotFieldList;
		private Nullable<bool> _showPivotChartFilter;
		private Nullable<bool> _allowRefreshQuery;
		private Nullable<bool> _publishItems;
		private Nullable<bool> _checkCompatibility;
		private Nullable<bool> _autoCompressPictures;
		private Nullable<bool> _refreshAllConnections;
		private Nullable<uint> _defaultThemeVersion;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Date1904"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> Date1904
		{
			get { return _date1904; }
			set { OnDate1904PropertyChanging(ref value, _date1904); SetModified(value, _date1904); _date1904 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DateCompatibility"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> DateCompatibility
		{
			get { return _dateCompatibility; }
			set { OnDateCompatibilityPropertyChanging(ref value, _dateCompatibility); SetModified(value, _dateCompatibility); _dateCompatibility = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowObjects"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> ShowObjects
		{
			get { return _showObjects; }
			set { OnShowObjectsPropertyChanging(ref value, _showObjects); SetModified(value, _showObjects); _showObjects = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowBorderUnselectedTables"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> ShowBorderUnselectedTables
		{
			get { return _showBorderUnselectedTables; }
			set { OnShowBorderUnselectedTablesPropertyChanging(ref value, _showBorderUnselectedTables); SetModified(value, _showBorderUnselectedTables); _showBorderUnselectedTables = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FilterPrivacy"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> FilterPrivacy
		{
			get { return _filterPrivacy; }
			set { OnFilterPrivacyPropertyChanging(ref value, _filterPrivacy); SetModified(value, _filterPrivacy); _filterPrivacy = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PromptedSolutions"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> PromptedSolutions
		{
			get { return _promptedSolutions; }
			set { OnPromptedSolutionsPropertyChanging(ref value, _promptedSolutions); SetModified(value, _promptedSolutions); _promptedSolutions = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowInkAnnotation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> ShowInkAnnotation
		{
			get { return _showInkAnnotation; }
			set { OnShowInkAnnotationPropertyChanging(ref value, _showInkAnnotation); SetModified(value, _showInkAnnotation); _showInkAnnotation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BackupFile"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> BackupFile
		{
			get { return _backupFile; }
			set { OnBackupFilePropertyChanging(ref value, _backupFile); SetModified(value, _backupFile); _backupFile = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SaveExternalLinkValues"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> SaveExternalLinkValues
		{
			get { return _saveExternalLinkValues; }
			set { OnSaveExternalLinkValuesPropertyChanging(ref value, _saveExternalLinkValues); SetModified(value, _saveExternalLinkValues); _saveExternalLinkValues = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UpdateLinks"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.UpdateLinksBehaviorValues> UpdateLinks
		{
			get { return _updateLinks; }
			set { OnUpdateLinksPropertyChanging(ref value, _updateLinks); SetModified(value, _updateLinks); _updateLinks = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CodeName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public string CodeName
		{
			get { return _codeName; }
			set { OnCodeNamePropertyChanging(ref value, _codeName); SetModified(value, _codeName); _codeName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HidePivotFieldList"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> HidePivotFieldList
		{
			get { return _hidePivotFieldList; }
			set { OnHidePivotFieldListPropertyChanging(ref value, _hidePivotFieldList); SetModified(value, _hidePivotFieldList); _hidePivotFieldList = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowPivotChartFilter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> ShowPivotChartFilter
		{
			get { return _showPivotChartFilter; }
			set { OnShowPivotChartFilterPropertyChanging(ref value, _showPivotChartFilter); SetModified(value, _showPivotChartFilter); _showPivotChartFilter = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AllowRefreshQuery"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> AllowRefreshQuery
		{
			get { return _allowRefreshQuery; }
			set { OnAllowRefreshQueryPropertyChanging(ref value, _allowRefreshQuery); SetModified(value, _allowRefreshQuery); _allowRefreshQuery = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PublishItems"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> PublishItems
		{
			get { return _publishItems; }
			set { OnPublishItemsPropertyChanging(ref value, _publishItems); SetModified(value, _publishItems); _publishItems = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CheckCompatibility"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> CheckCompatibility
		{
			get { return _checkCompatibility; }
			set { OnCheckCompatibilityPropertyChanging(ref value, _checkCompatibility); SetModified(value, _checkCompatibility); _checkCompatibility = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoCompressPictures"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoCompressPictures
		{
			get { return _autoCompressPictures; }
			set { OnAutoCompressPicturesPropertyChanging(ref value, _autoCompressPictures); SetModified(value, _autoCompressPictures); _autoCompressPictures = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RefreshAllConnections"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<bool> RefreshAllConnections
		{
			get { return _refreshAllConnections; }
			set { OnRefreshAllConnectionsPropertyChanging(ref value, _refreshAllConnections); SetModified(value, _refreshAllConnections); _refreshAllConnections = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultThemeVersion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.
		/// </summary>
		public Nullable<uint> DefaultThemeVersion
		{
			get { return _defaultThemeVersion; }
			set { OnDefaultThemeVersionPropertyChanging(ref value, _defaultThemeVersion); SetModified(value, _defaultThemeVersion); _defaultThemeVersion = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDate1904PropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDateCompatibilityPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowObjectsPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> original);
		partial void OnShowBorderUnselectedTablesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFilterPrivacyPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPromptedSolutionsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowInkAnnotationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBackupFilePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSaveExternalLinkValuesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUpdateLinksPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.UpdateLinksBehaviorValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.UpdateLinksBehaviorValues> original);
		partial void OnCodeNamePropertyChanging(ref string modified, string original);
		partial void OnHidePivotFieldListPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowPivotChartFilterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAllowRefreshQueryPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPublishItemsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCheckCompatibilityPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoCompressPicturesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRefreshAllConnectionsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultThemeVersionPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_date1904 = default(Nullable<bool>);
			_dateCompatibility = default(Nullable<bool>);
			_showObjects = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues>);
			_showBorderUnselectedTables = default(Nullable<bool>);
			_filterPrivacy = default(Nullable<bool>);
			_promptedSolutions = default(Nullable<bool>);
			_showInkAnnotation = default(Nullable<bool>);
			_backupFile = default(Nullable<bool>);
			_saveExternalLinkValues = default(Nullable<bool>);
			_updateLinks = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.UpdateLinksBehaviorValues>);
			_codeName = default(string);
			_hidePivotFieldList = default(Nullable<bool>);
			_showPivotChartFilter = default(Nullable<bool>);
			_allowRefreshQuery = default(Nullable<bool>);
			_publishItems = default(Nullable<bool>);
			_checkCompatibility = default(Nullable<bool>);
			_autoCompressPictures = default(Nullable<bool>);
			_refreshAllConnections = default(Nullable<bool>);
			_defaultThemeVersion = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_date1904 = Wrapped.Date1904 == null ? null : Wrapped.Date1904.ToNullable();
			_dateCompatibility = Wrapped.DateCompatibility == null ? null : Wrapped.DateCompatibility.ToNullable();
			_showBorderUnselectedTables = Wrapped.ShowBorderUnselectedTables == null ? null : Wrapped.ShowBorderUnselectedTables.ToNullable();
			_filterPrivacy = Wrapped.FilterPrivacy == null ? null : Wrapped.FilterPrivacy.ToNullable();
			_promptedSolutions = Wrapped.PromptedSolutions == null ? null : Wrapped.PromptedSolutions.ToNullable();
			_showInkAnnotation = Wrapped.ShowInkAnnotation == null ? null : Wrapped.ShowInkAnnotation.ToNullable();
			_backupFile = Wrapped.BackupFile == null ? null : Wrapped.BackupFile.ToNullable();
			_saveExternalLinkValues = Wrapped.SaveExternalLinkValues == null ? null : Wrapped.SaveExternalLinkValues.ToNullable();
			_codeName = Wrapped.CodeName == null ? null : Wrapped.CodeName.ToString();
			_hidePivotFieldList = Wrapped.HidePivotFieldList == null ? null : Wrapped.HidePivotFieldList.ToNullable();
			_showPivotChartFilter = Wrapped.ShowPivotChartFilter == null ? null : Wrapped.ShowPivotChartFilter.ToNullable();
			_allowRefreshQuery = Wrapped.AllowRefreshQuery == null ? null : Wrapped.AllowRefreshQuery.ToNullable();
			_publishItems = Wrapped.PublishItems == null ? null : Wrapped.PublishItems.ToNullable();
			_checkCompatibility = Wrapped.CheckCompatibility == null ? null : Wrapped.CheckCompatibility.ToNullable();
			_autoCompressPictures = Wrapped.AutoCompressPictures == null ? null : Wrapped.AutoCompressPictures.ToNullable();
			_refreshAllConnections = Wrapped.RefreshAllConnections == null ? null : Wrapped.RefreshAllConnections.ToNullable();
			_defaultThemeVersion = Wrapped.DefaultThemeVersion == null ? null : Wrapped.DefaultThemeVersion.ToNullable();
			if (Wrapped.ShowObjects != null) _showObjects = Wrapped.ShowObjects;
			if (Wrapped.UpdateLinks != null) _updateLinks = Wrapped.UpdateLinks;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WorkbookProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShowObjects = _showObjects;
				result.UpdateLinks = _updateLinks;
				result.Date1904 = _date1904.HasValue ? _date1904.ToBooleanValue() : null;
				result.DateCompatibility = _dateCompatibility.HasValue ? _dateCompatibility.ToBooleanValue() : null;
				result.ShowBorderUnselectedTables = _showBorderUnselectedTables.HasValue ? _showBorderUnselectedTables.ToBooleanValue() : null;
				result.FilterPrivacy = _filterPrivacy.HasValue ? _filterPrivacy.ToBooleanValue() : null;
				result.PromptedSolutions = _promptedSolutions.HasValue ? _promptedSolutions.ToBooleanValue() : null;
				result.ShowInkAnnotation = _showInkAnnotation.HasValue ? _showInkAnnotation.ToBooleanValue() : null;
				result.BackupFile = _backupFile.HasValue ? _backupFile.ToBooleanValue() : null;
				result.SaveExternalLinkValues = _saveExternalLinkValues.HasValue ? _saveExternalLinkValues.ToBooleanValue() : null;
				result.CodeName = _codeName == null ? null : StringValue.FromString(_codeName);
				result.HidePivotFieldList = _hidePivotFieldList.HasValue ? _hidePivotFieldList.ToBooleanValue() : null;
				result.ShowPivotChartFilter = _showPivotChartFilter.HasValue ? _showPivotChartFilter.ToBooleanValue() : null;
				result.AllowRefreshQuery = _allowRefreshQuery.HasValue ? _allowRefreshQuery.ToBooleanValue() : null;
				result.PublishItems = _publishItems.HasValue ? _publishItems.ToBooleanValue() : null;
				result.CheckCompatibility = _checkCompatibility.HasValue ? _checkCompatibility.ToBooleanValue() : null;
				result.AutoCompressPictures = _autoCompressPictures.HasValue ? _autoCompressPictures.ToBooleanValue() : null;
				result.RefreshAllConnections = _refreshAllConnections.HasValue ? _refreshAllConnections.ToBooleanValue() : null;
				result.DefaultThemeVersion = _defaultThemeVersion.HasValue ? _defaultThemeVersion.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookProtectionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection>
	{
		private string _localName;
		private string _workbookPassword;
		private string _revisionsPassword;
		private Nullable<bool> _lockStructure;
		private Nullable<bool> _lockWindows;
		private Nullable<bool> _lockRevision;
		private string _revisionsAlgorithmName;
		private string _revisionsHashValue;
		private string _revisionsSaltValue;
		private Nullable<uint> _revisionsSpinCount;
		private string _workbookAlgorithmName;
		private string _workbookHashValue;
		private string _workbookSaltValue;
		private Nullable<uint> _workbookSpinCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookProtectionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookProtectionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookPassword"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string WorkbookPassword
		{
			get { return _workbookPassword; }
			set { OnWorkbookPasswordPropertyChanging(ref value, _workbookPassword); SetModified(value, _workbookPassword); _workbookPassword = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RevisionsPassword"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string RevisionsPassword
		{
			get { return _revisionsPassword; }
			set { OnRevisionsPasswordPropertyChanging(ref value, _revisionsPassword); SetModified(value, _revisionsPassword); _revisionsPassword = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LockStructure"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public Nullable<bool> LockStructure
		{
			get { return _lockStructure; }
			set { OnLockStructurePropertyChanging(ref value, _lockStructure); SetModified(value, _lockStructure); _lockStructure = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LockWindows"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public Nullable<bool> LockWindows
		{
			get { return _lockWindows; }
			set { OnLockWindowsPropertyChanging(ref value, _lockWindows); SetModified(value, _lockWindows); _lockWindows = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LockRevision"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public Nullable<bool> LockRevision
		{
			get { return _lockRevision; }
			set { OnLockRevisionPropertyChanging(ref value, _lockRevision); SetModified(value, _lockRevision); _lockRevision = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RevisionsAlgorithmName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string RevisionsAlgorithmName
		{
			get { return _revisionsAlgorithmName; }
			set { OnRevisionsAlgorithmNamePropertyChanging(ref value, _revisionsAlgorithmName); SetModified(value, _revisionsAlgorithmName); _revisionsAlgorithmName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RevisionsHashValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string RevisionsHashValue
		{
			get { return _revisionsHashValue; }
			set { OnRevisionsHashValuePropertyChanging(ref value, _revisionsHashValue); SetModified(value, _revisionsHashValue); _revisionsHashValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RevisionsSaltValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string RevisionsSaltValue
		{
			get { return _revisionsSaltValue; }
			set { OnRevisionsSaltValuePropertyChanging(ref value, _revisionsSaltValue); SetModified(value, _revisionsSaltValue); _revisionsSaltValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RevisionsSpinCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public Nullable<uint> RevisionsSpinCount
		{
			get { return _revisionsSpinCount; }
			set { OnRevisionsSpinCountPropertyChanging(ref value, _revisionsSpinCount); SetModified(value, _revisionsSpinCount); _revisionsSpinCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookAlgorithmName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string WorkbookAlgorithmName
		{
			get { return _workbookAlgorithmName; }
			set { OnWorkbookAlgorithmNamePropertyChanging(ref value, _workbookAlgorithmName); SetModified(value, _workbookAlgorithmName); _workbookAlgorithmName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookHashValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string WorkbookHashValue
		{
			get { return _workbookHashValue; }
			set { OnWorkbookHashValuePropertyChanging(ref value, _workbookHashValue); SetModified(value, _workbookHashValue); _workbookHashValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookSaltValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public string WorkbookSaltValue
		{
			get { return _workbookSaltValue; }
			set { OnWorkbookSaltValuePropertyChanging(ref value, _workbookSaltValue); SetModified(value, _workbookSaltValue); _workbookSaltValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookSpinCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.
		/// </summary>
		public Nullable<uint> WorkbookSpinCount
		{
			get { return _workbookSpinCount; }
			set { OnWorkbookSpinCountPropertyChanging(ref value, _workbookSpinCount); SetModified(value, _workbookSpinCount); _workbookSpinCount = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnWorkbookPasswordPropertyChanging(ref string modified, string original);
		partial void OnRevisionsPasswordPropertyChanging(ref string modified, string original);
		partial void OnLockStructurePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLockWindowsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLockRevisionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRevisionsAlgorithmNamePropertyChanging(ref string modified, string original);
		partial void OnRevisionsHashValuePropertyChanging(ref string modified, string original);
		partial void OnRevisionsSaltValuePropertyChanging(ref string modified, string original);
		partial void OnRevisionsSpinCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWorkbookAlgorithmNamePropertyChanging(ref string modified, string original);
		partial void OnWorkbookHashValuePropertyChanging(ref string modified, string original);
		partial void OnWorkbookSaltValuePropertyChanging(ref string modified, string original);
		partial void OnWorkbookSpinCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_workbookPassword = default(string);
			_revisionsPassword = default(string);
			_lockStructure = default(Nullable<bool>);
			_lockWindows = default(Nullable<bool>);
			_lockRevision = default(Nullable<bool>);
			_revisionsAlgorithmName = default(string);
			_revisionsHashValue = default(string);
			_revisionsSaltValue = default(string);
			_revisionsSpinCount = default(Nullable<uint>);
			_workbookAlgorithmName = default(string);
			_workbookHashValue = default(string);
			_workbookSaltValue = default(string);
			_workbookSpinCount = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_workbookPassword = Wrapped.WorkbookPassword == null ? null : Wrapped.WorkbookPassword.ToString();
			_revisionsPassword = Wrapped.RevisionsPassword == null ? null : Wrapped.RevisionsPassword.ToString();
			_lockStructure = Wrapped.LockStructure == null ? null : Wrapped.LockStructure.ToNullable();
			_lockWindows = Wrapped.LockWindows == null ? null : Wrapped.LockWindows.ToNullable();
			_lockRevision = Wrapped.LockRevision == null ? null : Wrapped.LockRevision.ToNullable();
			_revisionsAlgorithmName = Wrapped.RevisionsAlgorithmName == null ? null : Wrapped.RevisionsAlgorithmName.ToString();
			_revisionsHashValue = Wrapped.RevisionsHashValue == null ? null : Wrapped.RevisionsHashValue.ToString();
			_revisionsSaltValue = Wrapped.RevisionsSaltValue == null ? null : Wrapped.RevisionsSaltValue.ToString();
			_revisionsSpinCount = Wrapped.RevisionsSpinCount == null ? null : Wrapped.RevisionsSpinCount.ToNullable();
			_workbookAlgorithmName = Wrapped.WorkbookAlgorithmName == null ? null : Wrapped.WorkbookAlgorithmName.ToString();
			_workbookHashValue = Wrapped.WorkbookHashValue == null ? null : Wrapped.WorkbookHashValue.ToString();
			_workbookSaltValue = Wrapped.WorkbookSaltValue == null ? null : Wrapped.WorkbookSaltValue.ToString();
			_workbookSpinCount = Wrapped.WorkbookSpinCount == null ? null : Wrapped.WorkbookSpinCount.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WorkbookProtection();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.WorkbookPassword = _workbookPassword == null ? null : HexBinaryValue.FromString(_workbookPassword);
				result.RevisionsPassword = _revisionsPassword == null ? null : HexBinaryValue.FromString(_revisionsPassword);
				result.LockStructure = _lockStructure.HasValue ? _lockStructure.ToBooleanValue() : null;
				result.LockWindows = _lockWindows.HasValue ? _lockWindows.ToBooleanValue() : null;
				result.LockRevision = _lockRevision.HasValue ? _lockRevision.ToBooleanValue() : null;
				result.RevisionsAlgorithmName = _revisionsAlgorithmName == null ? null : StringValue.FromString(_revisionsAlgorithmName);
				result.RevisionsHashValue = _revisionsHashValue == null ? null : Base64BinaryValue.FromString(_revisionsHashValue);
				result.RevisionsSaltValue = _revisionsSaltValue == null ? null : Base64BinaryValue.FromString(_revisionsSaltValue);
				result.RevisionsSpinCount = _revisionsSpinCount.HasValue ? _revisionsSpinCount.ToUInt32Value() : null;
				result.WorkbookAlgorithmName = _workbookAlgorithmName == null ? null : StringValue.FromString(_workbookAlgorithmName);
				result.WorkbookHashValue = _workbookHashValue == null ? null : Base64BinaryValue.FromString(_workbookHashValue);
				result.WorkbookSaltValue = _workbookSaltValue == null ? null : Base64BinaryValue.FromString(_workbookSaltValue);
				result.WorkbookSpinCount = _workbookSpinCount.HasValue ? _workbookSpinCount.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WorkbookExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroups"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FunctionGroupsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FunctionGroups>
	{
		private string _localName;
		private Nullable<uint> _builtInGroupCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="FunctionGroupsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroups"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FunctionGroupsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FunctionGroups wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroups"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BuiltInGroupCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroups"/> instance.
		/// </summary>
		public Nullable<uint> BuiltInGroupCount
		{
			get { return _builtInGroupCount; }
			set { OnBuiltInGroupCountPropertyChanging(ref value, _builtInGroupCount); SetModified(value, _builtInGroupCount); _builtInGroupCount = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FunctionGroupWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FunctionGroupWrapper FunctionGroup { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnBuiltInGroupCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_builtInGroupCount = default(Nullable<uint>);
			FunctionGroup = new ExtremeML.Spreadsheet.FunctionGroupWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_builtInGroupCount = Wrapped.BuiltInGroupCount == null ? null : Wrapped.BuiltInGroupCount.ToNullable();
			FunctionGroup = new ExtremeML.Spreadsheet.FunctionGroupWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.FunctionGroup>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroups"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FunctionGroups Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FunctionGroups();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.BuiltInGroupCount = _builtInGroupCount.HasValue ? _builtInGroupCount.ToUInt32Value() : null;
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.FunctionGroup>();
				result.AppendChild(FunctionGroup.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return FunctionGroup;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroup"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FunctionGroupWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FunctionGroup>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="FunctionGroupWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroup"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FunctionGroupWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FunctionGroup wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroup"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroup"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FunctionGroup"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FunctionGroup Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FunctionGroup();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReferences"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExternalReferencesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ExternalReferences>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExternalReferencesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReferences"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExternalReferencesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ExternalReferences wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReferences"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExternalReferenceWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExternalReferenceWrapperCollection ExternalReferences { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ExternalReferences = new ExtremeML.Spreadsheet.ExternalReferenceWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ExternalReferences = new ExtremeML.Spreadsheet.ExternalReferenceWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReferences"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ExternalReferences Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ExternalReferences();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ExternalReferences.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExternalReferences;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExternalReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ExternalReference>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExternalReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExternalReferenceWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ExternalReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReference"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ExternalReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ExternalReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ExternalReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedNames"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DefinedNamesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DefinedNames>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="DefinedNamesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedNames"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DefinedNamesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DefinedNames wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedNames"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DefinedNameWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DefinedNameWrapperCollection DefinedNames { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			DefinedNames = new ExtremeML.Spreadsheet.DefinedNameWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			DefinedNames = new ExtremeML.Spreadsheet.DefinedNameWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedNames"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DefinedNames Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DefinedNames();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				DefinedNames.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DefinedNames;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DefinedNameWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DefinedName>
	{
		private string _localName;
		private string _name;
		private string _comment;
		private string _customMenu;
		private string _description;
		private string _help;
		private string _statusBar;
		private Nullable<uint> _localSheetId;
		private Nullable<bool> _hidden;
		private Nullable<bool> _function;
		private Nullable<bool> _vbProcedure;
		private Nullable<bool> _xlm;
		private Nullable<uint> _functionGroupId;
		private string _shortcutKey;
		private Nullable<bool> _publishToServer;
		private Nullable<bool> _workbookParameter;

		/// <summary>
		/// Initializes a new instance of the <see cref="DefinedNameWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DefinedNameWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DefinedName wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Comment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string Comment
		{
			get { return _comment; }
			set { OnCommentPropertyChanging(ref value, _comment); SetModified(value, _comment); _comment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomMenu"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string CustomMenu
		{
			get { return _customMenu; }
			set { OnCustomMenuPropertyChanging(ref value, _customMenu); SetModified(value, _customMenu); _customMenu = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Description"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string Description
		{
			get { return _description; }
			set { OnDescriptionPropertyChanging(ref value, _description); SetModified(value, _description); _description = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Help"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string Help
		{
			get { return _help; }
			set { OnHelpPropertyChanging(ref value, _help); SetModified(value, _help); _help = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StatusBar"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string StatusBar
		{
			get { return _statusBar; }
			set { OnStatusBarPropertyChanging(ref value, _statusBar); SetModified(value, _statusBar); _statusBar = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LocalSheetId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<uint> LocalSheetId
		{
			get { return _localSheetId; }
			set { OnLocalSheetIdPropertyChanging(ref value, _localSheetId); SetModified(value, _localSheetId); _localSheetId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Function"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> Function
		{
			get { return _function; }
			set { OnFunctionPropertyChanging(ref value, _function); SetModified(value, _function); _function = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VbProcedure"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> VbProcedure
		{
			get { return _vbProcedure; }
			set { OnVbProcedurePropertyChanging(ref value, _vbProcedure); SetModified(value, _vbProcedure); _vbProcedure = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Xlm"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> Xlm
		{
			get { return _xlm; }
			set { OnXlmPropertyChanging(ref value, _xlm); SetModified(value, _xlm); _xlm = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FunctionGroupId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<uint> FunctionGroupId
		{
			get { return _functionGroupId; }
			set { OnFunctionGroupIdPropertyChanging(ref value, _functionGroupId); SetModified(value, _functionGroupId); _functionGroupId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShortcutKey"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public string ShortcutKey
		{
			get { return _shortcutKey; }
			set { OnShortcutKeyPropertyChanging(ref value, _shortcutKey); SetModified(value, _shortcutKey); _shortcutKey = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PublishToServer"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> PublishToServer
		{
			get { return _publishToServer; }
			set { OnPublishToServerPropertyChanging(ref value, _publishToServer); SetModified(value, _publishToServer); _publishToServer = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookParameter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.
		/// </summary>
		public Nullable<bool> WorkbookParameter
		{
			get { return _workbookParameter; }
			set { OnWorkbookParameterPropertyChanging(ref value, _workbookParameter); SetModified(value, _workbookParameter); _workbookParameter = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnCommentPropertyChanging(ref string modified, string original);
		partial void OnCustomMenuPropertyChanging(ref string modified, string original);
		partial void OnDescriptionPropertyChanging(ref string modified, string original);
		partial void OnHelpPropertyChanging(ref string modified, string original);
		partial void OnStatusBarPropertyChanging(ref string modified, string original);
		partial void OnLocalSheetIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFunctionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnVbProcedurePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXlmPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFunctionGroupIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShortcutKeyPropertyChanging(ref string modified, string original);
		partial void OnPublishToServerPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnWorkbookParameterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_comment = default(string);
			_customMenu = default(string);
			_description = default(string);
			_help = default(string);
			_statusBar = default(string);
			_localSheetId = default(Nullable<uint>);
			_hidden = default(Nullable<bool>);
			_function = default(Nullable<bool>);
			_vbProcedure = default(Nullable<bool>);
			_xlm = default(Nullable<bool>);
			_functionGroupId = default(Nullable<uint>);
			_shortcutKey = default(string);
			_publishToServer = default(Nullable<bool>);
			_workbookParameter = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_comment = Wrapped.Comment == null ? null : Wrapped.Comment.ToString();
			_customMenu = Wrapped.CustomMenu == null ? null : Wrapped.CustomMenu.ToString();
			_description = Wrapped.Description == null ? null : Wrapped.Description.ToString();
			_help = Wrapped.Help == null ? null : Wrapped.Help.ToString();
			_statusBar = Wrapped.StatusBar == null ? null : Wrapped.StatusBar.ToString();
			_localSheetId = Wrapped.LocalSheetId == null ? null : Wrapped.LocalSheetId.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
			_function = Wrapped.Function == null ? null : Wrapped.Function.ToNullable();
			_vbProcedure = Wrapped.VbProcedure == null ? null : Wrapped.VbProcedure.ToNullable();
			_xlm = Wrapped.Xlm == null ? null : Wrapped.Xlm.ToNullable();
			_functionGroupId = Wrapped.FunctionGroupId == null ? null : Wrapped.FunctionGroupId.ToNullable();
			_shortcutKey = Wrapped.ShortcutKey == null ? null : Wrapped.ShortcutKey.ToString();
			_publishToServer = Wrapped.PublishToServer == null ? null : Wrapped.PublishToServer.ToNullable();
			_workbookParameter = Wrapped.WorkbookParameter == null ? null : Wrapped.WorkbookParameter.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DefinedName"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DefinedName Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DefinedName();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Comment = _comment == null ? null : StringValue.FromString(_comment);
				result.CustomMenu = _customMenu == null ? null : StringValue.FromString(_customMenu);
				result.Description = _description == null ? null : StringValue.FromString(_description);
				result.Help = _help == null ? null : StringValue.FromString(_help);
				result.StatusBar = _statusBar == null ? null : StringValue.FromString(_statusBar);
				result.LocalSheetId = _localSheetId.HasValue ? _localSheetId.ToUInt32Value() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;
				result.Function = _function.HasValue ? _function.ToBooleanValue() : null;
				result.VbProcedure = _vbProcedure.HasValue ? _vbProcedure.ToBooleanValue() : null;
				result.Xlm = _xlm.HasValue ? _xlm.ToBooleanValue() : null;
				result.FunctionGroupId = _functionGroupId.HasValue ? _functionGroupId.ToUInt32Value() : null;
				result.ShortcutKey = _shortcutKey == null ? null : StringValue.FromString(_shortcutKey);
				result.PublishToServer = _publishToServer.HasValue ? _publishToServer.ToBooleanValue() : null;
				result.WorkbookParameter = _workbookParameter.HasValue ? _workbookParameter.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CalculationPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CalculationProperties>
	{
		private string _localName;
		private Nullable<uint> _calculationId;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CalculateModeValues> _calculationMode;
		private Nullable<bool> _fullCalculationOnLoad;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ReferenceModeValues> _referenceMode;
		private Nullable<bool> _iterate;
		private Nullable<uint> _iterateCount;
		private Nullable<double> _iterateDelta;
		private Nullable<bool> _fullPrecision;
		private Nullable<bool> _calculationCompleted;
		private Nullable<bool> _calculationOnSave;
		private Nullable<bool> _concurrentCalculation;
		private Nullable<uint> _concurrentManualCount;
		private Nullable<bool> _forceFullCalculation;

		/// <summary>
		/// Initializes a new instance of the <see cref="CalculationPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CalculationPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CalculationProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculationId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<uint> CalculationId
		{
			get { return _calculationId; }
			set { OnCalculationIdPropertyChanging(ref value, _calculationId); SetModified(value, _calculationId); _calculationId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculationMode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CalculateModeValues> CalculationMode
		{
			get { return _calculationMode; }
			set { OnCalculationModePropertyChanging(ref value, _calculationMode); SetModified(value, _calculationMode); _calculationMode = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FullCalculationOnLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> FullCalculationOnLoad
		{
			get { return _fullCalculationOnLoad; }
			set { OnFullCalculationOnLoadPropertyChanging(ref value, _fullCalculationOnLoad); SetModified(value, _fullCalculationOnLoad); _fullCalculationOnLoad = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ReferenceMode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ReferenceModeValues> ReferenceMode
		{
			get { return _referenceMode; }
			set { OnReferenceModePropertyChanging(ref value, _referenceMode); SetModified(value, _referenceMode); _referenceMode = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Iterate"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> Iterate
		{
			get { return _iterate; }
			set { OnIteratePropertyChanging(ref value, _iterate); SetModified(value, _iterate); _iterate = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IterateCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<uint> IterateCount
		{
			get { return _iterateCount; }
			set { OnIterateCountPropertyChanging(ref value, _iterateCount); SetModified(value, _iterateCount); _iterateCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IterateDelta"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<double> IterateDelta
		{
			get { return _iterateDelta; }
			set { OnIterateDeltaPropertyChanging(ref value, _iterateDelta); SetModified(value, _iterateDelta); _iterateDelta = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FullPrecision"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> FullPrecision
		{
			get { return _fullPrecision; }
			set { OnFullPrecisionPropertyChanging(ref value, _fullPrecision); SetModified(value, _fullPrecision); _fullPrecision = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculationCompleted"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> CalculationCompleted
		{
			get { return _calculationCompleted; }
			set { OnCalculationCompletedPropertyChanging(ref value, _calculationCompleted); SetModified(value, _calculationCompleted); _calculationCompleted = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculationOnSave"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> CalculationOnSave
		{
			get { return _calculationOnSave; }
			set { OnCalculationOnSavePropertyChanging(ref value, _calculationOnSave); SetModified(value, _calculationOnSave); _calculationOnSave = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ConcurrentCalculation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> ConcurrentCalculation
		{
			get { return _concurrentCalculation; }
			set { OnConcurrentCalculationPropertyChanging(ref value, _concurrentCalculation); SetModified(value, _concurrentCalculation); _concurrentCalculation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ConcurrentManualCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<uint> ConcurrentManualCount
		{
			get { return _concurrentManualCount; }
			set { OnConcurrentManualCountPropertyChanging(ref value, _concurrentManualCount); SetModified(value, _concurrentManualCount); _concurrentManualCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ForceFullCalculation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> ForceFullCalculation
		{
			get { return _forceFullCalculation; }
			set { OnForceFullCalculationPropertyChanging(ref value, _forceFullCalculation); SetModified(value, _forceFullCalculation); _forceFullCalculation = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCalculationIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCalculationModePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CalculateModeValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CalculateModeValues> original);
		partial void OnFullCalculationOnLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnReferenceModePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ReferenceModeValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ReferenceModeValues> original);
		partial void OnIteratePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIterateCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIterateDeltaPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnFullPrecisionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCalculationCompletedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCalculationOnSavePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnConcurrentCalculationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnConcurrentManualCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnForceFullCalculationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_calculationId = default(Nullable<uint>);
			_calculationMode = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CalculateModeValues>);
			_fullCalculationOnLoad = default(Nullable<bool>);
			_referenceMode = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ReferenceModeValues>);
			_iterate = default(Nullable<bool>);
			_iterateCount = default(Nullable<uint>);
			_iterateDelta = default(Nullable<double>);
			_fullPrecision = default(Nullable<bool>);
			_calculationCompleted = default(Nullable<bool>);
			_calculationOnSave = default(Nullable<bool>);
			_concurrentCalculation = default(Nullable<bool>);
			_concurrentManualCount = default(Nullable<uint>);
			_forceFullCalculation = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_calculationId = Wrapped.CalculationId == null ? null : Wrapped.CalculationId.ToNullable();
			_fullCalculationOnLoad = Wrapped.FullCalculationOnLoad == null ? null : Wrapped.FullCalculationOnLoad.ToNullable();
			_iterate = Wrapped.Iterate == null ? null : Wrapped.Iterate.ToNullable();
			_iterateCount = Wrapped.IterateCount == null ? null : Wrapped.IterateCount.ToNullable();
			_iterateDelta = Wrapped.IterateDelta == null ? null : Wrapped.IterateDelta.ToNullable();
			_fullPrecision = Wrapped.FullPrecision == null ? null : Wrapped.FullPrecision.ToNullable();
			_calculationCompleted = Wrapped.CalculationCompleted == null ? null : Wrapped.CalculationCompleted.ToNullable();
			_calculationOnSave = Wrapped.CalculationOnSave == null ? null : Wrapped.CalculationOnSave.ToNullable();
			_concurrentCalculation = Wrapped.ConcurrentCalculation == null ? null : Wrapped.ConcurrentCalculation.ToNullable();
			_concurrentManualCount = Wrapped.ConcurrentManualCount == null ? null : Wrapped.ConcurrentManualCount.ToNullable();
			_forceFullCalculation = Wrapped.ForceFullCalculation == null ? null : Wrapped.ForceFullCalculation.ToNullable();
			if (Wrapped.CalculationMode != null) _calculationMode = Wrapped.CalculationMode;
			if (Wrapped.ReferenceMode != null) _referenceMode = Wrapped.ReferenceMode;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculationProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CalculationProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CalculationProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CalculationMode = _calculationMode;
				result.ReferenceMode = _referenceMode;
				result.CalculationId = _calculationId.HasValue ? _calculationId.ToUInt32Value() : null;
				result.FullCalculationOnLoad = _fullCalculationOnLoad.HasValue ? _fullCalculationOnLoad.ToBooleanValue() : null;
				result.Iterate = _iterate.HasValue ? _iterate.ToBooleanValue() : null;
				result.IterateCount = _iterateCount.HasValue ? _iterateCount.ToUInt32Value() : null;
				result.IterateDelta = _iterateDelta.HasValue ? _iterateDelta.ToDoubleValue() : null;
				result.FullPrecision = _fullPrecision.HasValue ? _fullPrecision.ToBooleanValue() : null;
				result.CalculationCompleted = _calculationCompleted.HasValue ? _calculationCompleted.ToBooleanValue() : null;
				result.CalculationOnSave = _calculationOnSave.HasValue ? _calculationOnSave.ToBooleanValue() : null;
				result.ConcurrentCalculation = _concurrentCalculation.HasValue ? _concurrentCalculation.ToBooleanValue() : null;
				result.ConcurrentManualCount = _concurrentManualCount.HasValue ? _concurrentManualCount.ToUInt32Value() : null;
				result.ForceFullCalculation = _forceFullCalculation.HasValue ? _forceFullCalculation.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OleSize"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OleSizeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OleSize>
	{
		private string _localName;
		private string _reference;

		/// <summary>
		/// Initializes a new instance of the <see cref="OleSizeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OleSize"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OleSizeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OleSize wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleSize"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleSize"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OleSize"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OleSize Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OleSize();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomWorkbookViewsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomWorkbookViewsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomWorkbookViewsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomWorkbookViewWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomWorkbookViewWrapperCollection CustomWorkbookViews { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CustomWorkbookViews = new ExtremeML.Spreadsheet.CustomWorkbookViewWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CustomWorkbookViews = new ExtremeML.Spreadsheet.CustomWorkbookViewWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookViews();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CustomWorkbookViews.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CustomWorkbookViews;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomWorkbookViewWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView>
	{
		private string _localName;
		private string _name;
		private string _guid;
		private Nullable<bool> _autoUpdate;
		private Nullable<uint> _mergeInterval;
		private Nullable<bool> _changesSavedWin;
		private Nullable<bool> _onlySync;
		private Nullable<bool> _personalView;
		private Nullable<bool> _includePrintSettings;
		private Nullable<bool> _includeHiddenRowColumn;
		private Nullable<bool> _maximized;
		private Nullable<bool> _minimized;
		private Nullable<bool> _showHorizontalScroll;
		private Nullable<bool> _showVerticalScroll;
		private Nullable<bool> _showSheetTabs;
		private Nullable<int> _xWindow;
		private Nullable<int> _yWindow;
		private Nullable<uint> _windowWidth;
		private Nullable<uint> _windowHeight;
		private Nullable<uint> _tabRatio;
		private Nullable<uint> _activeSheetId;
		private Nullable<bool> _showFormulaBar;
		private Nullable<bool> _showStatusbar;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CommentsValues> _showComments;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> _showObjects;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomWorkbookViewWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomWorkbookViewWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Guid"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public string Guid
		{
			get { return _guid; }
			set { OnGuidPropertyChanging(ref value, _guid); SetModified(value, _guid); _guid = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoUpdate"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> AutoUpdate
		{
			get { return _autoUpdate; }
			set { OnAutoUpdatePropertyChanging(ref value, _autoUpdate); SetModified(value, _autoUpdate); _autoUpdate = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MergeInterval"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> MergeInterval
		{
			get { return _mergeInterval; }
			set { OnMergeIntervalPropertyChanging(ref value, _mergeInterval); SetModified(value, _mergeInterval); _mergeInterval = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ChangesSavedWin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ChangesSavedWin
		{
			get { return _changesSavedWin; }
			set { OnChangesSavedWinPropertyChanging(ref value, _changesSavedWin); SetModified(value, _changesSavedWin); _changesSavedWin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OnlySync"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> OnlySync
		{
			get { return _onlySync; }
			set { OnOnlySyncPropertyChanging(ref value, _onlySync); SetModified(value, _onlySync); _onlySync = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PersonalView"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> PersonalView
		{
			get { return _personalView; }
			set { OnPersonalViewPropertyChanging(ref value, _personalView); SetModified(value, _personalView); _personalView = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IncludePrintSettings"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> IncludePrintSettings
		{
			get { return _includePrintSettings; }
			set { OnIncludePrintSettingsPropertyChanging(ref value, _includePrintSettings); SetModified(value, _includePrintSettings); _includePrintSettings = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IncludeHiddenRowColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> IncludeHiddenRowColumn
		{
			get { return _includeHiddenRowColumn; }
			set { OnIncludeHiddenRowColumnPropertyChanging(ref value, _includeHiddenRowColumn); SetModified(value, _includeHiddenRowColumn); _includeHiddenRowColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Maximized"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> Maximized
		{
			get { return _maximized; }
			set { OnMaximizedPropertyChanging(ref value, _maximized); SetModified(value, _maximized); _maximized = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Minimized"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> Minimized
		{
			get { return _minimized; }
			set { OnMinimizedPropertyChanging(ref value, _minimized); SetModified(value, _minimized); _minimized = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowHorizontalScroll"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowHorizontalScroll
		{
			get { return _showHorizontalScroll; }
			set { OnShowHorizontalScrollPropertyChanging(ref value, _showHorizontalScroll); SetModified(value, _showHorizontalScroll); _showHorizontalScroll = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowVerticalScroll"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowVerticalScroll
		{
			get { return _showVerticalScroll; }
			set { OnShowVerticalScrollPropertyChanging(ref value, _showVerticalScroll); SetModified(value, _showVerticalScroll); _showVerticalScroll = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowSheetTabs"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowSheetTabs
		{
			get { return _showSheetTabs; }
			set { OnShowSheetTabsPropertyChanging(ref value, _showSheetTabs); SetModified(value, _showSheetTabs); _showSheetTabs = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<int> XWindow
		{
			get { return _xWindow; }
			set { OnXWindowPropertyChanging(ref value, _xWindow); SetModified(value, _xWindow); _xWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="YWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<int> YWindow
		{
			get { return _yWindow; }
			set { OnYWindowPropertyChanging(ref value, _yWindow); SetModified(value, _yWindow); _yWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WindowWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> WindowWidth
		{
			get { return _windowWidth; }
			set { OnWindowWidthPropertyChanging(ref value, _windowWidth); SetModified(value, _windowWidth); _windowWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WindowHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> WindowHeight
		{
			get { return _windowHeight; }
			set { OnWindowHeightPropertyChanging(ref value, _windowHeight); SetModified(value, _windowHeight); _windowHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TabRatio"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> TabRatio
		{
			get { return _tabRatio; }
			set { OnTabRatioPropertyChanging(ref value, _tabRatio); SetModified(value, _tabRatio); _tabRatio = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveSheetId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<uint> ActiveSheetId
		{
			get { return _activeSheetId; }
			set { OnActiveSheetIdPropertyChanging(ref value, _activeSheetId); SetModified(value, _activeSheetId); _activeSheetId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowFormulaBar"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowFormulaBar
		{
			get { return _showFormulaBar; }
			set { OnShowFormulaBarPropertyChanging(ref value, _showFormulaBar); SetModified(value, _showFormulaBar); _showFormulaBar = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowStatusbar"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<bool> ShowStatusbar
		{
			get { return _showStatusbar; }
			set { OnShowStatusbarPropertyChanging(ref value, _showStatusbar); SetModified(value, _showStatusbar); _showStatusbar = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowComments"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CommentsValues> ShowComments
		{
			get { return _showComments; }
			set { OnShowCommentsPropertyChanging(ref value, _showComments); SetModified(value, _showComments); _showComments = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowObjects"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> ShowObjects
		{
			get { return _showObjects; }
			set { OnShowObjectsPropertyChanging(ref value, _showObjects); SetModified(value, _showObjects); _showObjects = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnGuidPropertyChanging(ref string modified, string original);
		partial void OnAutoUpdatePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMergeIntervalPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnChangesSavedWinPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOnlySyncPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPersonalViewPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIncludePrintSettingsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIncludeHiddenRowColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMaximizedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMinimizedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowHorizontalScrollPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowVerticalScrollPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowSheetTabsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXWindowPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnYWindowPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnWindowWidthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWindowHeightPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTabRatioPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnActiveSheetIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShowFormulaBarPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowStatusbarPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowCommentsPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CommentsValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CommentsValues> original);
		partial void OnShowObjectsPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_guid = default(string);
			_autoUpdate = default(Nullable<bool>);
			_mergeInterval = default(Nullable<uint>);
			_changesSavedWin = default(Nullable<bool>);
			_onlySync = default(Nullable<bool>);
			_personalView = default(Nullable<bool>);
			_includePrintSettings = default(Nullable<bool>);
			_includeHiddenRowColumn = default(Nullable<bool>);
			_maximized = default(Nullable<bool>);
			_minimized = default(Nullable<bool>);
			_showHorizontalScroll = default(Nullable<bool>);
			_showVerticalScroll = default(Nullable<bool>);
			_showSheetTabs = default(Nullable<bool>);
			_xWindow = default(Nullable<int>);
			_yWindow = default(Nullable<int>);
			_windowWidth = default(Nullable<uint>);
			_windowHeight = default(Nullable<uint>);
			_tabRatio = default(Nullable<uint>);
			_activeSheetId = default(Nullable<uint>);
			_showFormulaBar = default(Nullable<bool>);
			_showStatusbar = default(Nullable<bool>);
			_showComments = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CommentsValues>);
			_showObjects = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ObjectDisplayValues>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_guid = Wrapped.Guid == null ? null : Wrapped.Guid.ToString();
			_autoUpdate = Wrapped.AutoUpdate == null ? null : Wrapped.AutoUpdate.ToNullable();
			_mergeInterval = Wrapped.MergeInterval == null ? null : Wrapped.MergeInterval.ToNullable();
			_changesSavedWin = Wrapped.ChangesSavedWin == null ? null : Wrapped.ChangesSavedWin.ToNullable();
			_onlySync = Wrapped.OnlySync == null ? null : Wrapped.OnlySync.ToNullable();
			_personalView = Wrapped.PersonalView == null ? null : Wrapped.PersonalView.ToNullable();
			_includePrintSettings = Wrapped.IncludePrintSettings == null ? null : Wrapped.IncludePrintSettings.ToNullable();
			_includeHiddenRowColumn = Wrapped.IncludeHiddenRowColumn == null ? null : Wrapped.IncludeHiddenRowColumn.ToNullable();
			_maximized = Wrapped.Maximized == null ? null : Wrapped.Maximized.ToNullable();
			_minimized = Wrapped.Minimized == null ? null : Wrapped.Minimized.ToNullable();
			_showHorizontalScroll = Wrapped.ShowHorizontalScroll == null ? null : Wrapped.ShowHorizontalScroll.ToNullable();
			_showVerticalScroll = Wrapped.ShowVerticalScroll == null ? null : Wrapped.ShowVerticalScroll.ToNullable();
			_showSheetTabs = Wrapped.ShowSheetTabs == null ? null : Wrapped.ShowSheetTabs.ToNullable();
			_xWindow = Wrapped.XWindow == null ? null : Wrapped.XWindow.ToNullable();
			_yWindow = Wrapped.YWindow == null ? null : Wrapped.YWindow.ToNullable();
			_windowWidth = Wrapped.WindowWidth == null ? null : Wrapped.WindowWidth.ToNullable();
			_windowHeight = Wrapped.WindowHeight == null ? null : Wrapped.WindowHeight.ToNullable();
			_tabRatio = Wrapped.TabRatio == null ? null : Wrapped.TabRatio.ToNullable();
			_activeSheetId = Wrapped.ActiveSheetId == null ? null : Wrapped.ActiveSheetId.ToNullable();
			_showFormulaBar = Wrapped.ShowFormulaBar == null ? null : Wrapped.ShowFormulaBar.ToNullable();
			_showStatusbar = Wrapped.ShowStatusbar == null ? null : Wrapped.ShowStatusbar.ToNullable();
			if (Wrapped.ShowComments != null) _showComments = Wrapped.ShowComments;
			if (Wrapped.ShowObjects != null) _showObjects = Wrapped.ShowObjects;
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShowComments = _showComments;
				result.ShowObjects = _showObjects;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Guid = _guid == null ? null : StringValue.FromString(_guid);
				result.AutoUpdate = _autoUpdate.HasValue ? _autoUpdate.ToBooleanValue() : null;
				result.MergeInterval = _mergeInterval.HasValue ? _mergeInterval.ToUInt32Value() : null;
				result.ChangesSavedWin = _changesSavedWin.HasValue ? _changesSavedWin.ToBooleanValue() : null;
				result.OnlySync = _onlySync.HasValue ? _onlySync.ToBooleanValue() : null;
				result.PersonalView = _personalView.HasValue ? _personalView.ToBooleanValue() : null;
				result.IncludePrintSettings = _includePrintSettings.HasValue ? _includePrintSettings.ToBooleanValue() : null;
				result.IncludeHiddenRowColumn = _includeHiddenRowColumn.HasValue ? _includeHiddenRowColumn.ToBooleanValue() : null;
				result.Maximized = _maximized.HasValue ? _maximized.ToBooleanValue() : null;
				result.Minimized = _minimized.HasValue ? _minimized.ToBooleanValue() : null;
				result.ShowHorizontalScroll = _showHorizontalScroll.HasValue ? _showHorizontalScroll.ToBooleanValue() : null;
				result.ShowVerticalScroll = _showVerticalScroll.HasValue ? _showVerticalScroll.ToBooleanValue() : null;
				result.ShowSheetTabs = _showSheetTabs.HasValue ? _showSheetTabs.ToBooleanValue() : null;
				result.XWindow = _xWindow.HasValue ? _xWindow.ToInt32Value() : null;
				result.YWindow = _yWindow.HasValue ? _yWindow.ToInt32Value() : null;
				result.WindowWidth = _windowWidth.HasValue ? _windowWidth.ToUInt32Value() : null;
				result.WindowHeight = _windowHeight.HasValue ? _windowHeight.ToUInt32Value() : null;
				result.TabRatio = _tabRatio.HasValue ? _tabRatio.ToUInt32Value() : null;
				result.ActiveSheetId = _activeSheetId.HasValue ? _activeSheetId.ToUInt32Value() : null;
				result.ShowFormulaBar = _showFormulaBar.HasValue ? _showFormulaBar.ToBooleanValue() : null;
				result.ShowStatusbar = _showStatusbar.HasValue ? _showStatusbar.ToBooleanValue() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SmartTagPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties>
	{
		private string _localName;
		private Nullable<bool> _embed;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SmartTagDisplayValues> _show;

		/// <summary>
		/// Initializes a new instance of the <see cref="SmartTagPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SmartTagPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Embed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> instance.
		/// </summary>
		public Nullable<bool> Embed
		{
			get { return _embed; }
			set { OnEmbedPropertyChanging(ref value, _embed); SetModified(value, _embed); _embed = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Show"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SmartTagDisplayValues> Show
		{
			get { return _show; }
			set { OnShowPropertyChanging(ref value, _show); SetModified(value, _show); _show = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnEmbedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SmartTagDisplayValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SmartTagDisplayValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_embed = default(Nullable<bool>);
			_show = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SmartTagDisplayValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_embed = Wrapped.Embed == null ? null : Wrapped.Embed.ToNullable();
			if (Wrapped.Show != null) _show = Wrapped.Show;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SmartTagProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Show = _show;
				result.Embed = _embed.HasValue ? _embed.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SmartTagTypesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SmartTagTypesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SmartTagTypesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SmartTagTypeWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SmartTagTypeWrapperCollection SmartTagTypes { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			SmartTagTypes = new ExtremeML.Spreadsheet.SmartTagTypeWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SmartTagTypes = new ExtremeML.Spreadsheet.SmartTagTypeWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SmartTagTypes();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				SmartTagTypes.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return SmartTagTypes;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SmartTagTypeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SmartTagType>
	{
		private string _localName;
		private string _smartTagNamespace;
		private string _name;
		private string _url;

		/// <summary>
		/// Initializes a new instance of the <see cref="SmartTagTypeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SmartTagTypeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SmartTagType wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SmartTagNamespace"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> instance.
		/// </summary>
		public string SmartTagNamespace
		{
			get { return _smartTagNamespace; }
			set { OnSmartTagNamespacePropertyChanging(ref value, _smartTagNamespace); SetModified(value, _smartTagNamespace); _smartTagNamespace = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Url"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> instance.
		/// </summary>
		public string Url
		{
			get { return _url; }
			set { OnUrlPropertyChanging(ref value, _url); SetModified(value, _url); _url = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnSmartTagNamespacePropertyChanging(ref string modified, string original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnUrlPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_smartTagNamespace = default(string);
			_name = default(string);
			_url = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_smartTagNamespace = Wrapped.SmartTagNamespace == null ? null : Wrapped.SmartTagNamespace.ToString();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_url = Wrapped.Url == null ? null : Wrapped.Url.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTagType"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SmartTagType Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SmartTagType();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SmartTagNamespace = _smartTagNamespace == null ? null : StringValue.FromString(_smartTagNamespace);
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Url = _url == null ? null : StringValue.FromString(_url);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheets"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Sheets>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheets"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Sheets wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheets"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetWrapperCollection Sheets { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Sheets = new ExtremeML.Spreadsheet.SheetWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Sheets = new ExtremeML.Spreadsheet.SheetWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheets"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Sheets Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Sheets();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Sheets.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Sheets;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Sheet>
	{
		private string _localName;
		private string _name;
		private Nullable<uint> _sheetId;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> _state;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Sheet wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SheetId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.
		/// </summary>
		public Nullable<uint> SheetId
		{
			get { return _sheetId; }
			set { OnSheetIdPropertyChanging(ref value, _sheetId); SetModified(value, _sheetId); _sheetId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="State"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> State
		{
			get { return _state; }
			set { OnStatePropertyChanging(ref value, _state); SetModified(value, _state); _state = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnSheetIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnStatePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Declares code that be must executed prior to initialization and decompose code.
		/// </summary>
		protected override void OnConstructing()
		{
			InitializeSequentialIdentifierPattern();
		}

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_sheetId = default(Nullable<uint>);
			_state = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues>);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_sheetId = Wrapped.SheetId == null ? null : Wrapped.SheetId.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			if (Wrapped.State != null) _state = Wrapped.State;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Sheet Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Sheet();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.State = _state;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.SheetId = _sheetId.HasValue ? _sheetId.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		#region SequentialIdentifierPattern Implementation

		/// <summary>
		/// Assigns pattern event listeners.
		/// </summary>
		private void InitializeSequentialIdentifierPattern()
		{
			Activating += SequentialIdentifierActivating;
		}

		private static uint _lastSequence;

		/// <summary>
		/// Establishes relationships with other package content objects.
		/// </summary>
		private void SequentialIdentifierActivating()
		{
			_lastSequence = Math.Max(_lastSequence, SheetId.Value);
		}

		/// <summary>
		/// Creates a <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/> and assigns it the next sequential id.
		/// </summary>
		/// <returns>A new instance of <see cref="DocumentFormat.OpenXml.Spreadsheet.Sheet"/>.</returns>
		internal new static DocumentFormat.OpenXml.Spreadsheet.Sheet CreateDefaultElement()
		{
			return new DocumentFormat.OpenXml.Spreadsheet.Sheet() { SheetId = ++_lastSequence };
		}

		#endregion
	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FileRecoveryPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties>
	{
		private string _localName;
		private Nullable<bool> _autoRecover;
		private Nullable<bool> _crashSave;
		private Nullable<bool> _dataExtractLoad;
		private Nullable<bool> _repairLoad;

		/// <summary>
		/// Initializes a new instance of the <see cref="FileRecoveryPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FileRecoveryPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoRecover"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoRecover
		{
			get { return _autoRecover; }
			set { OnAutoRecoverPropertyChanging(ref value, _autoRecover); SetModified(value, _autoRecover); _autoRecover = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CrashSave"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.
		/// </summary>
		public Nullable<bool> CrashSave
		{
			get { return _crashSave; }
			set { OnCrashSavePropertyChanging(ref value, _crashSave); SetModified(value, _crashSave); _crashSave = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataExtractLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.
		/// </summary>
		public Nullable<bool> DataExtractLoad
		{
			get { return _dataExtractLoad; }
			set { OnDataExtractLoadPropertyChanging(ref value, _dataExtractLoad); SetModified(value, _dataExtractLoad); _dataExtractLoad = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RepairLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.
		/// </summary>
		public Nullable<bool> RepairLoad
		{
			get { return _repairLoad; }
			set { OnRepairLoadPropertyChanging(ref value, _repairLoad); SetModified(value, _repairLoad); _repairLoad = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAutoRecoverPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCrashSavePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDataExtractLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRepairLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_autoRecover = default(Nullable<bool>);
			_crashSave = default(Nullable<bool>);
			_dataExtractLoad = default(Nullable<bool>);
			_repairLoad = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_autoRecover = Wrapped.AutoRecover == null ? null : Wrapped.AutoRecover.ToNullable();
			_crashSave = Wrapped.CrashSave == null ? null : Wrapped.CrashSave.ToNullable();
			_dataExtractLoad = Wrapped.DataExtractLoad == null ? null : Wrapped.DataExtractLoad.ToNullable();
			_repairLoad = Wrapped.RepairLoad == null ? null : Wrapped.RepairLoad.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.AutoRecover = _autoRecover.HasValue ? _autoRecover.ToBooleanValue() : null;
				result.CrashSave = _crashSave.HasValue ? _crashSave.ToBooleanValue() : null;
				result.DataExtractLoad = _dataExtractLoad.HasValue ? _dataExtractLoad.ToBooleanValue() : null;
				result.RepairLoad = _repairLoad.HasValue ? _repairLoad.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SharedStringTableWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SharedStringTable>
	{
		private string _localName;
		private Nullable<uint> _count;
		private Nullable<uint> _uniqueCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="SharedStringTableWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SharedStringTableWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SharedStringTable wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UniqueCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> instance.
		/// </summary>
		public Nullable<uint> UniqueCount
		{
			get { return _uniqueCount; }
			set { OnUniqueCountPropertyChanging(ref value, _uniqueCount); SetModified(value, _uniqueCount); _uniqueCount = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SharedStringItemWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SharedStringItemWrapperCollection SharedStringItems { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnUniqueCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			_uniqueCount = default(Nullable<uint>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			SharedStringItems = new ExtremeML.Spreadsheet.SharedStringItemWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_uniqueCount = Wrapped.UniqueCount == null ? null : Wrapped.UniqueCount.ToNullable();
			SharedStringItems = new ExtremeML.Spreadsheet.SharedStringItemWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringTable"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.SharedStringTable wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.UniqueCount = _uniqueCount.HasValue ? _uniqueCount.ToUInt32Value() : null;
				SharedStringItems.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return SharedStringItems;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringItem"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SharedStringItemWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SharedStringItem>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SharedStringItemWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringItem"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SharedStringItemWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SharedStringItem wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringItem"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TextWrapper Text { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticPropertiesWrapper PhoneticProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RunWrapperCollection Runs { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticRunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticRunWrapperCollection PhoneticRuns { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Text = new ExtremeML.Spreadsheet.TextWrapper(null, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(null, this, Package);
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(null, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(Wrapped, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(Wrapped, this, Package);
			Text = new ExtremeML.Spreadsheet.TextWrapper(Wrapped.Text, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SharedStringItem"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SharedStringItem Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SharedStringItem();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Runs.Recompose(result);
				PhoneticRuns.Recompose(result);
				result.Text = Text.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>();
				result.AppendChild(PhoneticProperties.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Text;
			yield return PhoneticProperties;
			yield return Runs;
			yield return PhoneticRuns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Text"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TextWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Text>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="TextWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Text"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TextWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Text wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Text"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Text"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Text"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Text Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Text();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PhoneticPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>
	{
		private string _localName;
		private Nullable<uint> _fontId;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticValues> _type;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticAlignmentValues> _alignment;

		/// <summary>
		/// Initializes a new instance of the <see cref="PhoneticPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PhoneticPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> instance.
		/// </summary>
		public Nullable<uint> FontId
		{
			get { return _fontId; }
			set { OnFontIdPropertyChanging(ref value, _fontId); SetModified(value, _fontId); _fontId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticAlignmentValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFontIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticValues> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticAlignmentValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_fontId = default(Nullable<uint>);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticValues>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PhoneticAlignmentValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_fontId = Wrapped.FontId == null ? null : Wrapped.FontId.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Alignment = _alignment;
				result.FontId = _fontId.HasValue ? _fontId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Run"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RunWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Run>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="RunWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Run"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RunWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Run wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Run"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RunPropertiesWrapper RunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TextWrapper Text { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			RunProperties = new ExtremeML.Spreadsheet.RunPropertiesWrapper(null, this, Package);
			Text = new ExtremeML.Spreadsheet.TextWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			RunProperties = new ExtremeML.Spreadsheet.RunPropertiesWrapper(Wrapped.RunProperties, this, Package);
			Text = new ExtremeML.Spreadsheet.TextWrapper(Wrapped.Text, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Run"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Run Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Run();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RunProperties = RunProperties.Recompose();
				result.Text = Text.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RunProperties;
			yield return Text;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.RunProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RunPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.RunProperties>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="RunPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.RunProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RunPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.RunProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RunProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.RunProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.RunProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.RunProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PhoneticRunWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PhoneticRun>
	{
		private string _localName;
		private Nullable<uint> _baseTextStartIndex;
		private Nullable<uint> _endingBaseIndex;

		/// <summary>
		/// Initializes a new instance of the <see cref="PhoneticRunWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PhoneticRunWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PhoneticRun wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BaseTextStartIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> instance.
		/// </summary>
		public Nullable<uint> BaseTextStartIndex
		{
			get { return _baseTextStartIndex; }
			set { OnBaseTextStartIndexPropertyChanging(ref value, _baseTextStartIndex); SetModified(value, _baseTextStartIndex); _baseTextStartIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EndingBaseIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> instance.
		/// </summary>
		public Nullable<uint> EndingBaseIndex
		{
			get { return _endingBaseIndex; }
			set { OnEndingBaseIndexPropertyChanging(ref value, _endingBaseIndex); SetModified(value, _endingBaseIndex); _endingBaseIndex = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TextWrapper Text { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnBaseTextStartIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnEndingBaseIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_baseTextStartIndex = default(Nullable<uint>);
			_endingBaseIndex = default(Nullable<uint>);
			Text = new ExtremeML.Spreadsheet.TextWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_baseTextStartIndex = Wrapped.BaseTextStartIndex == null ? null : Wrapped.BaseTextStartIndex.ToNullable();
			_endingBaseIndex = Wrapped.EndingBaseIndex == null ? null : Wrapped.EndingBaseIndex.ToNullable();
			Text = new ExtremeML.Spreadsheet.TextWrapper(Wrapped.Text, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PhoneticRun"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PhoneticRun Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PhoneticRun();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.BaseTextStartIndex = _baseTextStartIndex.HasValue ? _baseTextStartIndex.ToUInt32Value() : null;
				result.EndingBaseIndex = _endingBaseIndex.HasValue ? _endingBaseIndex.ToUInt32Value() : null;
				result.Text = Text.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Text;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Stylesheet"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class StylesheetWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Stylesheet>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="StylesheetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Stylesheet"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal StylesheetWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Stylesheet wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Stylesheet"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.NumberingFormatsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.NumberingFormatsWrapper NumberingFormats { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontsWrapper Fonts { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FillsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FillsWrapper Fills { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BordersWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BordersWrapper Borders { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellStyleFormatsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellStyleFormatsWrapper CellStyleFormats { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellFormatsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellFormatsWrapper CellFormats { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellStylesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellStylesWrapper CellStyles { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DifferentialFormatsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DifferentialFormatsWrapper DifferentialFormats { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableStylesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableStylesWrapper TableStyles { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorsWrapper Colors { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.StylesheetExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.StylesheetExtensionListWrapper StylesheetExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			NumberingFormats = new ExtremeML.Spreadsheet.NumberingFormatsWrapper(null, this, Package);
			Fonts = new ExtremeML.Spreadsheet.FontsWrapper(null, this, Package);
			Fills = new ExtremeML.Spreadsheet.FillsWrapper(null, this, Package);
			Borders = new ExtremeML.Spreadsheet.BordersWrapper(null, this, Package);
			CellStyleFormats = new ExtremeML.Spreadsheet.CellStyleFormatsWrapper(null, this, Package);
			CellFormats = new ExtremeML.Spreadsheet.CellFormatsWrapper(null, this, Package);
			CellStyles = new ExtremeML.Spreadsheet.CellStylesWrapper(null, this, Package);
			DifferentialFormats = new ExtremeML.Spreadsheet.DifferentialFormatsWrapper(null, this, Package);
			TableStyles = new ExtremeML.Spreadsheet.TableStylesWrapper(null, this, Package);
			Colors = new ExtremeML.Spreadsheet.ColorsWrapper(null, this, Package);
			StylesheetExtensionList = new ExtremeML.Spreadsheet.StylesheetExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			NumberingFormats = new ExtremeML.Spreadsheet.NumberingFormatsWrapper(Wrapped.NumberingFormats, this, Package);
			Fonts = new ExtremeML.Spreadsheet.FontsWrapper(Wrapped.Fonts, this, Package);
			Fills = new ExtremeML.Spreadsheet.FillsWrapper(Wrapped.Fills, this, Package);
			Borders = new ExtremeML.Spreadsheet.BordersWrapper(Wrapped.Borders, this, Package);
			CellStyleFormats = new ExtremeML.Spreadsheet.CellStyleFormatsWrapper(Wrapped.CellStyleFormats, this, Package);
			CellFormats = new ExtremeML.Spreadsheet.CellFormatsWrapper(Wrapped.CellFormats, this, Package);
			CellStyles = new ExtremeML.Spreadsheet.CellStylesWrapper(Wrapped.CellStyles, this, Package);
			DifferentialFormats = new ExtremeML.Spreadsheet.DifferentialFormatsWrapper(Wrapped.DifferentialFormats, this, Package);
			TableStyles = new ExtremeML.Spreadsheet.TableStylesWrapper(Wrapped.TableStyles, this, Package);
			Colors = new ExtremeML.Spreadsheet.ColorsWrapper(Wrapped.Colors, this, Package);
			StylesheetExtensionList = new ExtremeML.Spreadsheet.StylesheetExtensionListWrapper(Wrapped.StylesheetExtensionList, this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Stylesheet"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.Stylesheet wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.NumberingFormats = NumberingFormats.Recompose();
				result.Fonts = Fonts.Recompose();
				result.Fills = Fills.Recompose();
				result.Borders = Borders.Recompose();
				result.CellStyleFormats = CellStyleFormats.Recompose();
				result.CellFormats = CellFormats.Recompose();
				result.CellStyles = CellStyles.Recompose();
				result.DifferentialFormats = DifferentialFormats.Recompose();
				result.TableStyles = TableStyles.Recompose();
				result.Colors = Colors.Recompose();
				result.StylesheetExtensionList = StylesheetExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return NumberingFormats;
			yield return Fonts;
			yield return Fills;
			yield return Borders;
			yield return CellStyleFormats;
			yield return CellFormats;
			yield return CellStyles;
			yield return DifferentialFormats;
			yield return TableStyles;
			yield return Colors;
			yield return StylesheetExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DifferentialFormatsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="DifferentialFormatsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DifferentialFormatsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DifferentialFormatWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DifferentialFormatWrapperCollection DifferentialFormats { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			DifferentialFormats = new ExtremeML.Spreadsheet.DifferentialFormatWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			DifferentialFormats = new ExtremeML.Spreadsheet.DifferentialFormatWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				DifferentialFormats.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DifferentialFormats;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DifferentialFormatWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="DifferentialFormatWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DifferentialFormatWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontWrapper Font { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.NumberingFormatWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.NumberingFormatWrapper NumberingFormat { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AlignmentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AlignmentWrapper Alignment { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BorderWrapper Border { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ProtectionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ProtectionWrapper Protection { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Font = new ExtremeML.Spreadsheet.FontWrapper(null, this, Package);
			NumberingFormat = new ExtremeML.Spreadsheet.NumberingFormatWrapper(null, this, Package);
			Alignment = new ExtremeML.Spreadsheet.AlignmentWrapper(null, this, Package);
			Border = new ExtremeML.Spreadsheet.BorderWrapper(null, this, Package);
			Protection = new ExtremeML.Spreadsheet.ProtectionWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Font = new ExtremeML.Spreadsheet.FontWrapper(Wrapped.Font, this, Package);
			NumberingFormat = new ExtremeML.Spreadsheet.NumberingFormatWrapper(Wrapped.NumberingFormat, this, Package);
			Alignment = new ExtremeML.Spreadsheet.AlignmentWrapper(Wrapped.Alignment, this, Package);
			Border = new ExtremeML.Spreadsheet.BorderWrapper(Wrapped.Border, this, Package);
			Protection = new ExtremeML.Spreadsheet.ProtectionWrapper(Wrapped.Protection, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Font = Font.Recompose();
				result.NumberingFormat = NumberingFormat.Recompose();
				result.Alignment = Alignment.Recompose();
				result.Border = Border.Recompose();
				result.Protection = Protection.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Font;
			yield return NumberingFormat;
			yield return Alignment;
			yield return Border;
			yield return Protection;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Font"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Font>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Font"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Font wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Font"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BoldWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BoldWrapper Bold { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ItalicWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ItalicWrapper Italic { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.StrikeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.StrikeWrapper Strike { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CondenseWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CondenseWrapper Condense { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtendWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtendWrapper Extend { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OutlineWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OutlineWrapper Outline { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ShadowWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ShadowWrapper Shadow { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.UnderlineWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.UnderlineWrapper Underline { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.VerticalTextAlignmentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.VerticalTextAlignmentWrapper VerticalTextAlignment { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontSizeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontSizeWrapper FontSize { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontNameWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontNameWrapper FontName { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontFamilyNumberingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontFamilyNumberingWrapper FontFamilyNumbering { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontCharSetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontCharSetWrapper FontCharSet { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontSchemeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontSchemeWrapper FontScheme { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Bold = new ExtremeML.Spreadsheet.BoldWrapper(null, this, Package);
			Italic = new ExtremeML.Spreadsheet.ItalicWrapper(null, this, Package);
			Strike = new ExtremeML.Spreadsheet.StrikeWrapper(null, this, Package);
			Condense = new ExtremeML.Spreadsheet.CondenseWrapper(null, this, Package);
			Extend = new ExtremeML.Spreadsheet.ExtendWrapper(null, this, Package);
			Outline = new ExtremeML.Spreadsheet.OutlineWrapper(null, this, Package);
			Shadow = new ExtremeML.Spreadsheet.ShadowWrapper(null, this, Package);
			Underline = new ExtremeML.Spreadsheet.UnderlineWrapper(null, this, Package);
			VerticalTextAlignment = new ExtremeML.Spreadsheet.VerticalTextAlignmentWrapper(null, this, Package);
			FontSize = new ExtremeML.Spreadsheet.FontSizeWrapper(null, this, Package);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
			FontName = new ExtremeML.Spreadsheet.FontNameWrapper(null, this, Package);
			FontFamilyNumbering = new ExtremeML.Spreadsheet.FontFamilyNumberingWrapper(null, this, Package);
			FontCharSet = new ExtremeML.Spreadsheet.FontCharSetWrapper(null, this, Package);
			FontScheme = new ExtremeML.Spreadsheet.FontSchemeWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Bold = new ExtremeML.Spreadsheet.BoldWrapper(Wrapped.Bold, this, Package);
			Italic = new ExtremeML.Spreadsheet.ItalicWrapper(Wrapped.Italic, this, Package);
			Strike = new ExtremeML.Spreadsheet.StrikeWrapper(Wrapped.Strike, this, Package);
			Condense = new ExtremeML.Spreadsheet.CondenseWrapper(Wrapped.Condense, this, Package);
			Extend = new ExtremeML.Spreadsheet.ExtendWrapper(Wrapped.Extend, this, Package);
			Outline = new ExtremeML.Spreadsheet.OutlineWrapper(Wrapped.Outline, this, Package);
			Shadow = new ExtremeML.Spreadsheet.ShadowWrapper(Wrapped.Shadow, this, Package);
			Underline = new ExtremeML.Spreadsheet.UnderlineWrapper(Wrapped.Underline, this, Package);
			VerticalTextAlignment = new ExtremeML.Spreadsheet.VerticalTextAlignmentWrapper(Wrapped.VerticalTextAlignment, this, Package);
			FontSize = new ExtremeML.Spreadsheet.FontSizeWrapper(Wrapped.FontSize, this, Package);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
			FontName = new ExtremeML.Spreadsheet.FontNameWrapper(Wrapped.FontName, this, Package);
			FontFamilyNumbering = new ExtremeML.Spreadsheet.FontFamilyNumberingWrapper(Wrapped.FontFamilyNumbering, this, Package);
			FontCharSet = new ExtremeML.Spreadsheet.FontCharSetWrapper(Wrapped.FontCharSet, this, Package);
			FontScheme = new ExtremeML.Spreadsheet.FontSchemeWrapper(Wrapped.FontScheme, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Font"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Font Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Font();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Bold = Bold.Recompose();
				result.Italic = Italic.Recompose();
				result.Strike = Strike.Recompose();
				result.Condense = Condense.Recompose();
				result.Extend = Extend.Recompose();
				result.Outline = Outline.Recompose();
				result.Shadow = Shadow.Recompose();
				result.Underline = Underline.Recompose();
				result.VerticalTextAlignment = VerticalTextAlignment.Recompose();
				result.FontSize = FontSize.Recompose();
				result.Color = Color.Recompose();
				result.FontName = FontName.Recompose();
				result.FontFamilyNumbering = FontFamilyNumbering.Recompose();
				result.FontCharSet = FontCharSet.Recompose();
				result.FontScheme = FontScheme.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Bold;
			yield return Italic;
			yield return Strike;
			yield return Condense;
			yield return Extend;
			yield return Outline;
			yield return Shadow;
			yield return Underline;
			yield return VerticalTextAlignment;
			yield return FontSize;
			yield return Color;
			yield return FontName;
			yield return FontFamilyNumbering;
			yield return FontCharSet;
			yield return FontScheme;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Underline"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class UnderlineWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Underline>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.UnderlineValues> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="UnderlineWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Underline"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal UnderlineWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Underline wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Underline"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Underline"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.UnderlineValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.UnderlineValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.UnderlineValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.UnderlineValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Underline"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Underline Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Underline();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class VerticalTextAlignmentWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentRunValues> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="VerticalTextAlignmentWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal VerticalTextAlignmentWrapper(
			DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentRunValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentRunValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentRunValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentRunValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.VerticalTextAlignment();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Bold"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BoldWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Bold>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="BoldWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Bold"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BoldWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Bold wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Bold"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Bold"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Bold"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Bold Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Bold();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Italic"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ItalicWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Italic>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="ItalicWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Italic"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ItalicWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Italic wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Italic"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Italic"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Italic"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Italic Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Italic();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Strike"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class StrikeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Strike>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="StrikeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Strike"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal StrikeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Strike wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Strike"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Strike"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Strike"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Strike Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Strike();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Condense"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CondenseWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Condense>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="CondenseWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Condense"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CondenseWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Condense wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Condense"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Condense"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Condense"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Condense Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Condense();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Extend"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtendWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Extend>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtendWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Extend"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtendWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Extend wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Extend"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Extend"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Extend"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Extend Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Extend();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Outline"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OutlineWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Outline>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="OutlineWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Outline"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OutlineWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Outline wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Outline"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Outline"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Outline"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Outline Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Outline();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Shadow"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShadowWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Shadow>
	{
		private string _localName;
		private Nullable<bool> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShadowWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Shadow"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShadowWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Shadow wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Shadow"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Shadow"/> instance.
		/// </summary>
		public Nullable<bool> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Shadow"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Shadow Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Shadow();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontFamilyNumberingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering>
	{
		private string _localName;
		private Nullable<int> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontFamilyNumberingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontFamilyNumberingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering"/> instance.
		/// </summary>
		public Nullable<int> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FontFamilyNumbering();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FontCharSet"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontCharSetWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FontCharSet>
	{
		private string _localName;
		private Nullable<int> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontCharSetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FontCharSet"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontCharSetWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FontCharSet wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontCharSet"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontCharSet"/> instance.
		/// </summary>
		public Nullable<int> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FontCharSet"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FontCharSet Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FontCharSet();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FontSize"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontSizeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FontSize>
	{
		private string _localName;
		private Nullable<double> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontSizeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FontSize"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontSizeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FontSize wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontSize"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontSize"/> instance.
		/// </summary>
		public Nullable<double> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FontSize"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FontSize Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FontSize();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FontScheme"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontSchemeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FontScheme>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.FontSchemeValues> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontSchemeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FontScheme"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontSchemeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FontScheme wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontScheme"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontScheme"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.FontSchemeValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.FontSchemeValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.FontSchemeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.FontSchemeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FontScheme"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FontScheme Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FontScheme();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FontName"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontNameWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FontName>
	{
		private string _localName;
		private string _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontNameWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FontName"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontNameWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FontName wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontName"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FontName"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FontName"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FontName Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FontName();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val == null ? null : StringValue.FromString(_val);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Color>
	{
		private string _localName;
		private Nullable<bool> _auto;
		private Nullable<uint> _indexed;
		private string _rgb;
		private Nullable<uint> _theme;
		private Nullable<double> _tint;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Color wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Auto"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public Nullable<bool> Auto
		{
			get { return _auto; }
			set { OnAutoPropertyChanging(ref value, _auto); SetModified(value, _auto); _auto = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indexed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public Nullable<uint> Indexed
		{
			get { return _indexed; }
			set { OnIndexedPropertyChanging(ref value, _indexed); SetModified(value, _indexed); _indexed = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rgb"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public string Rgb
		{
			get { return _rgb; }
			set { OnRgbPropertyChanging(ref value, _rgb); SetModified(value, _rgb); _rgb = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Theme"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public Nullable<uint> Theme
		{
			get { return _theme; }
			set { OnThemePropertyChanging(ref value, _theme); SetModified(value, _theme); _theme = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Tint"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.
		/// </summary>
		public Nullable<double> Tint
		{
			get { return _tint; }
			set { OnTintPropertyChanging(ref value, _tint); SetModified(value, _tint); _tint = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAutoPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIndexedPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnRgbPropertyChanging(ref string modified, string original);
		partial void OnThemePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTintPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_auto = default(Nullable<bool>);
			_indexed = default(Nullable<uint>);
			_rgb = default(string);
			_theme = default(Nullable<uint>);
			_tint = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_auto = Wrapped.Auto == null ? null : Wrapped.Auto.ToNullable();
			_indexed = Wrapped.Indexed == null ? null : Wrapped.Indexed.ToNullable();
			_rgb = Wrapped.Rgb == null ? null : Wrapped.Rgb.ToString();
			_theme = Wrapped.Theme == null ? null : Wrapped.Theme.ToNullable();
			_tint = Wrapped.Tint == null ? null : Wrapped.Tint.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Color"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Color Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Color();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Auto = _auto.HasValue ? _auto.ToBooleanValue() : null;
				result.Indexed = _indexed.HasValue ? _indexed.ToUInt32Value() : null;
				result.Rgb = _rgb == null ? null : HexBinaryValue.FromString(_rgb);
				result.Theme = _theme.HasValue ? _theme.ToUInt32Value() : null;
				result.Tint = _tint.HasValue ? _tint.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AlignmentWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Alignment>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.HorizontalAlignmentValues> _horizontal;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues> _vertical;
		private Nullable<uint> _textRotation;
		private Nullable<bool> _wrapText;
		private Nullable<uint> _indent;
		private Nullable<int> _relativeIndent;
		private Nullable<bool> _justifyLastLine;
		private Nullable<bool> _shrinkToFit;
		private Nullable<uint> _readingOrder;
		private string _mergeCell;

		/// <summary>
		/// Initializes a new instance of the <see cref="AlignmentWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AlignmentWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Alignment wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Horizontal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.HorizontalAlignmentValues> Horizontal
		{
			get { return _horizontal; }
			set { OnHorizontalPropertyChanging(ref value, _horizontal); SetModified(value, _horizontal); _horizontal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Vertical"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues> Vertical
		{
			get { return _vertical; }
			set { OnVerticalPropertyChanging(ref value, _vertical); SetModified(value, _vertical); _vertical = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TextRotation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<uint> TextRotation
		{
			get { return _textRotation; }
			set { OnTextRotationPropertyChanging(ref value, _textRotation); SetModified(value, _textRotation); _textRotation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WrapText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<bool> WrapText
		{
			get { return _wrapText; }
			set { OnWrapTextPropertyChanging(ref value, _wrapText); SetModified(value, _wrapText); _wrapText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<uint> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RelativeIndent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<int> RelativeIndent
		{
			get { return _relativeIndent; }
			set { OnRelativeIndentPropertyChanging(ref value, _relativeIndent); SetModified(value, _relativeIndent); _relativeIndent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="JustifyLastLine"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<bool> JustifyLastLine
		{
			get { return _justifyLastLine; }
			set { OnJustifyLastLinePropertyChanging(ref value, _justifyLastLine); SetModified(value, _justifyLastLine); _justifyLastLine = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShrinkToFit"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<bool> ShrinkToFit
		{
			get { return _shrinkToFit; }
			set { OnShrinkToFitPropertyChanging(ref value, _shrinkToFit); SetModified(value, _shrinkToFit); _shrinkToFit = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ReadingOrder"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public Nullable<uint> ReadingOrder
		{
			get { return _readingOrder; }
			set { OnReadingOrderPropertyChanging(ref value, _readingOrder); SetModified(value, _readingOrder); _readingOrder = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MergeCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.
		/// </summary>
		public string MergeCell
		{
			get { return _mergeCell; }
			set { OnMergeCellPropertyChanging(ref value, _mergeCell); SetModified(value, _mergeCell); _mergeCell = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnHorizontalPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.HorizontalAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.HorizontalAlignmentValues> original);
		partial void OnVerticalPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues> original);
		partial void OnTextRotationPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWrapTextPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIndentPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnRelativeIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnJustifyLastLinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShrinkToFitPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnReadingOrderPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMergeCellPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_horizontal = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.HorizontalAlignmentValues>);
			_vertical = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues>);
			_textRotation = default(Nullable<uint>);
			_wrapText = default(Nullable<bool>);
			_indent = default(Nullable<uint>);
			_relativeIndent = default(Nullable<int>);
			_justifyLastLine = default(Nullable<bool>);
			_shrinkToFit = default(Nullable<bool>);
			_readingOrder = default(Nullable<uint>);
			_mergeCell = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_textRotation = Wrapped.TextRotation == null ? null : Wrapped.TextRotation.ToNullable();
			_wrapText = Wrapped.WrapText == null ? null : Wrapped.WrapText.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_relativeIndent = Wrapped.RelativeIndent == null ? null : Wrapped.RelativeIndent.ToNullable();
			_justifyLastLine = Wrapped.JustifyLastLine == null ? null : Wrapped.JustifyLastLine.ToNullable();
			_shrinkToFit = Wrapped.ShrinkToFit == null ? null : Wrapped.ShrinkToFit.ToNullable();
			_readingOrder = Wrapped.ReadingOrder == null ? null : Wrapped.ReadingOrder.ToNullable();
			_mergeCell = Wrapped.MergeCell == null ? null : Wrapped.MergeCell.ToString();
			if (Wrapped.Horizontal != null) _horizontal = Wrapped.Horizontal;
			if (Wrapped.Vertical != null) _vertical = Wrapped.Vertical;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Alignment"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Alignment Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Alignment();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Horizontal = _horizontal;
				result.Vertical = _vertical;
				result.TextRotation = _textRotation.HasValue ? _textRotation.ToUInt32Value() : null;
				result.WrapText = _wrapText.HasValue ? _wrapText.ToBooleanValue() : null;
				result.Indent = _indent.HasValue ? _indent.ToUInt32Value() : null;
				result.RelativeIndent = _relativeIndent.HasValue ? _relativeIndent.ToInt32Value() : null;
				result.JustifyLastLine = _justifyLastLine.HasValue ? _justifyLastLine.ToBooleanValue() : null;
				result.ShrinkToFit = _shrinkToFit.HasValue ? _shrinkToFit.ToBooleanValue() : null;
				result.ReadingOrder = _readingOrder.HasValue ? _readingOrder.ToUInt32Value() : null;
				result.MergeCell = _mergeCell == null ? null : StringValue.FromString(_mergeCell);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class NumberingFormatWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.NumberingFormat>
	{
		private string _localName;
		private Nullable<uint> _numberFormatId;
		private string _formatCode;

		/// <summary>
		/// Initializes a new instance of the <see cref="NumberingFormatWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal NumberingFormatWrapper(
			DocumentFormat.OpenXml.Spreadsheet.NumberingFormat wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NumberFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> instance.
		/// </summary>
		public Nullable<uint> NumberFormatId
		{
			get { return _numberFormatId; }
			set { OnNumberFormatIdPropertyChanging(ref value, _numberFormatId); SetModified(value, _numberFormatId); _numberFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatCode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> instance.
		/// </summary>
		public string FormatCode
		{
			get { return _formatCode; }
			set { OnFormatCodePropertyChanging(ref value, _formatCode); SetModified(value, _formatCode); _formatCode = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNumberFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFormatCodePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_numberFormatId = default(Nullable<uint>);
			_formatCode = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_numberFormatId = Wrapped.NumberFormatId == null ? null : Wrapped.NumberFormatId.ToNullable();
			_formatCode = Wrapped.FormatCode == null ? null : Wrapped.FormatCode.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormat"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.NumberingFormat Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.NumberingFormat();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.NumberFormatId = _numberFormatId.HasValue ? _numberFormatId.ToUInt32Value() : null;
				result.FormatCode = _formatCode == null ? null : StringValue.FromString(_formatCode);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Border>
	{
		private string _localName;
		private Nullable<bool> _diagonalUp;
		private Nullable<bool> _diagonalDown;
		private Nullable<bool> _outline;

		/// <summary>
		/// Initializes a new instance of the <see cref="BorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Border wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DiagonalUp"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> instance.
		/// </summary>
		public Nullable<bool> DiagonalUp
		{
			get { return _diagonalUp; }
			set { OnDiagonalUpPropertyChanging(ref value, _diagonalUp); SetModified(value, _diagonalUp); _diagonalUp = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DiagonalDown"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> instance.
		/// </summary>
		public Nullable<bool> DiagonalDown
		{
			get { return _diagonalDown; }
			set { OnDiagonalDownPropertyChanging(ref value, _diagonalDown); SetModified(value, _diagonalDown); _diagonalDown = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Outline"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> instance.
		/// </summary>
		public Nullable<bool> Outline
		{
			get { return _outline; }
			set { OnOutlinePropertyChanging(ref value, _outline); SetModified(value, _outline); _outline = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.StartBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.StartBorderWrapper StartBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.EndBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.EndBorderWrapper EndBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.LeftBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.LeftBorderWrapper LeftBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RightBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RightBorderWrapper RightBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TopBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TopBorderWrapper TopBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BottomBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BottomBorderWrapper BottomBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DiagonalBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DiagonalBorderWrapper DiagonalBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.VerticalBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.VerticalBorderWrapper VerticalBorder { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.HorizontalBorderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.HorizontalBorderWrapper HorizontalBorder { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDiagonalUpPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDiagonalDownPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_diagonalUp = default(Nullable<bool>);
			_diagonalDown = default(Nullable<bool>);
			_outline = default(Nullable<bool>);
			StartBorder = new ExtremeML.Spreadsheet.StartBorderWrapper(null, this, Package);
			EndBorder = new ExtremeML.Spreadsheet.EndBorderWrapper(null, this, Package);
			LeftBorder = new ExtremeML.Spreadsheet.LeftBorderWrapper(null, this, Package);
			RightBorder = new ExtremeML.Spreadsheet.RightBorderWrapper(null, this, Package);
			TopBorder = new ExtremeML.Spreadsheet.TopBorderWrapper(null, this, Package);
			BottomBorder = new ExtremeML.Spreadsheet.BottomBorderWrapper(null, this, Package);
			DiagonalBorder = new ExtremeML.Spreadsheet.DiagonalBorderWrapper(null, this, Package);
			VerticalBorder = new ExtremeML.Spreadsheet.VerticalBorderWrapper(null, this, Package);
			HorizontalBorder = new ExtremeML.Spreadsheet.HorizontalBorderWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_diagonalUp = Wrapped.DiagonalUp == null ? null : Wrapped.DiagonalUp.ToNullable();
			_diagonalDown = Wrapped.DiagonalDown == null ? null : Wrapped.DiagonalDown.ToNullable();
			_outline = Wrapped.Outline == null ? null : Wrapped.Outline.ToNullable();
			StartBorder = new ExtremeML.Spreadsheet.StartBorderWrapper(Wrapped.StartBorder, this, Package);
			EndBorder = new ExtremeML.Spreadsheet.EndBorderWrapper(Wrapped.EndBorder, this, Package);
			LeftBorder = new ExtremeML.Spreadsheet.LeftBorderWrapper(Wrapped.LeftBorder, this, Package);
			RightBorder = new ExtremeML.Spreadsheet.RightBorderWrapper(Wrapped.RightBorder, this, Package);
			TopBorder = new ExtremeML.Spreadsheet.TopBorderWrapper(Wrapped.TopBorder, this, Package);
			BottomBorder = new ExtremeML.Spreadsheet.BottomBorderWrapper(Wrapped.BottomBorder, this, Package);
			DiagonalBorder = new ExtremeML.Spreadsheet.DiagonalBorderWrapper(Wrapped.DiagonalBorder, this, Package);
			VerticalBorder = new ExtremeML.Spreadsheet.VerticalBorderWrapper(Wrapped.VerticalBorder, this, Package);
			HorizontalBorder = new ExtremeML.Spreadsheet.HorizontalBorderWrapper(Wrapped.HorizontalBorder, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Border"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Border Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Border();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DiagonalUp = _diagonalUp.HasValue ? _diagonalUp.ToBooleanValue() : null;
				result.DiagonalDown = _diagonalDown.HasValue ? _diagonalDown.ToBooleanValue() : null;
				result.Outline = _outline.HasValue ? _outline.ToBooleanValue() : null;
				result.StartBorder = StartBorder.Recompose();
				result.EndBorder = EndBorder.Recompose();
				result.LeftBorder = LeftBorder.Recompose();
				result.RightBorder = RightBorder.Recompose();
				result.TopBorder = TopBorder.Recompose();
				result.BottomBorder = BottomBorder.Recompose();
				result.DiagonalBorder = DiagonalBorder.Recompose();
				result.VerticalBorder = VerticalBorder.Recompose();
				result.HorizontalBorder = HorizontalBorder.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return StartBorder;
			yield return EndBorder;
			yield return LeftBorder;
			yield return RightBorder;
			yield return TopBorder;
			yield return BottomBorder;
			yield return DiagonalBorder;
			yield return VerticalBorder;
			yield return HorizontalBorder;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.LeftBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LeftBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.LeftBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="LeftBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.LeftBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LeftBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.LeftBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LeftBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LeftBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.LeftBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.LeftBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.LeftBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HorizontalBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="HorizontalBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HorizontalBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.HorizontalBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class VerticalBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.VerticalBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="VerticalBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal VerticalBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.VerticalBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.VerticalBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.VerticalBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.VerticalBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.StartBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class StartBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.StartBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="StartBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.StartBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal StartBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.StartBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.StartBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.StartBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.StartBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.StartBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.StartBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DiagonalBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="DiagonalBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DiagonalBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DiagonalBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.RightBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RightBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.RightBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="RightBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.RightBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RightBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.RightBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RightBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RightBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.RightBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.RightBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.RightBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TopBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TopBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TopBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="TopBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TopBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TopBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TopBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TopBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TopBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TopBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TopBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TopBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.BottomBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BottomBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.BottomBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="BottomBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.BottomBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BottomBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.BottomBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.BottomBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.BottomBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.BottomBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.BottomBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.BottomBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.EndBorder"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EndBorderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.EndBorder>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> _style;

		/// <summary>
		/// Initializes a new instance of the <see cref="EndBorderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.EndBorder"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EndBorderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.EndBorder wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EndBorder"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EndBorder"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		partial void OnStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_style = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.BorderStyleValues>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Style != null) _style = Wrapped.Style;
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.Color, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.EndBorder"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.EndBorder Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.EndBorder();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Style = _style;
				result.Color = Color.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ProtectionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Protection>
	{
		private string _localName;
		private Nullable<bool> _locked;
		private Nullable<bool> _hidden;

		/// <summary>
		/// Initializes a new instance of the <see cref="ProtectionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ProtectionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Protection wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Locked"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> instance.
		/// </summary>
		public Nullable<bool> Locked
		{
			get { return _locked; }
			set { OnLockedPropertyChanging(ref value, _locked); SetModified(value, _locked); _locked = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLockedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_locked = default(Nullable<bool>);
			_hidden = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_locked = Wrapped.Locked == null ? null : Wrapped.Locked.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Protection"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Protection Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Protection();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Locked = _locked.HasValue ? _locked.ToBooleanValue() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class StylesheetExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="StylesheetExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal StylesheetExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.StylesheetExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Colors"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Colors>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Colors"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Colors wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Colors"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.IndexedColorsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.IndexedColorsWrapper IndexedColors { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.MruColorsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.MruColorsWrapper MruColors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			IndexedColors = new ExtremeML.Spreadsheet.IndexedColorsWrapper(null, this, Package);
			MruColors = new ExtremeML.Spreadsheet.MruColorsWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			IndexedColors = new ExtremeML.Spreadsheet.IndexedColorsWrapper(Wrapped.IndexedColors, this, Package);
			MruColors = new ExtremeML.Spreadsheet.MruColorsWrapper(Wrapped.MruColors, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Colors"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Colors Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Colors();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.IndexedColors = IndexedColors.Recompose();
				result.MruColors = MruColors.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return IndexedColors;
			yield return MruColors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.MruColors"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MruColorsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.MruColors>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="MruColorsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.MruColors"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MruColorsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.MruColors wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.MruColors"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapperCollection Colors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Colors = new ExtremeML.Spreadsheet.ColorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Colors = new ExtremeML.Spreadsheet.ColorWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.MruColors"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.MruColors Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.MruColors();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Colors.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Colors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.IndexedColors"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IndexedColorsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.IndexedColors>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="IndexedColorsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.IndexedColors"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IndexedColorsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.IndexedColors wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IndexedColors"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RgbColorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RgbColorWrapperCollection RgbColors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			RgbColors = new ExtremeML.Spreadsheet.RgbColorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			RgbColors = new ExtremeML.Spreadsheet.RgbColorWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.IndexedColors"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.IndexedColors Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.IndexedColors();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				RgbColors.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.RgbColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RgbColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.RgbColor>
	{
		private string _localName;
		private string _rgb;

		/// <summary>
		/// Initializes a new instance of the <see cref="RgbColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.RgbColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RgbColorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.RgbColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RgbColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rgb"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RgbColor"/> instance.
		/// </summary>
		public string Rgb
		{
			get { return _rgb; }
			set { OnRgbPropertyChanging(ref value, _rgb); SetModified(value, _rgb); _rgb = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnRgbPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_rgb = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_rgb = Wrapped.Rgb == null ? null : Wrapped.Rgb.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.RgbColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.RgbColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.RgbColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Rgb = _rgb == null ? null : HexBinaryValue.FromString(_rgb);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormats"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class NumberingFormatsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.NumberingFormats>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="NumberingFormatsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormats"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal NumberingFormatsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.NumberingFormats wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormats"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormats"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.NumberingFormats"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.NumberingFormats Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.NumberingFormats();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Fonts>
	{
		private string _localName;
		private Nullable<uint> _count;
		private Nullable<bool> _knownFonts;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Fonts wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="KnownFonts"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> instance.
		/// </summary>
		public Nullable<bool> KnownFonts
		{
			get { return _knownFonts; }
			set { OnKnownFontsPropertyChanging(ref value, _knownFonts); SetModified(value, _knownFonts); _knownFonts = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FontWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FontWrapperCollection Fonts { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnKnownFontsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			_knownFonts = default(Nullable<bool>);
			Fonts = new ExtremeML.Spreadsheet.FontWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_knownFonts = Wrapped.KnownFonts == null ? null : Wrapped.KnownFonts.ToNullable();
			Fonts = new ExtremeML.Spreadsheet.FontWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Fonts"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Fonts Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Fonts();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.KnownFonts = _knownFonts.HasValue ? _knownFonts.ToBooleanValue() : null;
				Fonts.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Fonts;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Fills"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FillsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Fills>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="FillsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Fills"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FillsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Fills wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Fills"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Fills"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Fills"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Fills Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Fills();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Borders"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BordersWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Borders>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="BordersWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Borders"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BordersWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Borders wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Borders"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Borders"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BorderWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BorderWrapperCollection Borders { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			Borders = new ExtremeML.Spreadsheet.BorderWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			Borders = new ExtremeML.Spreadsheet.BorderWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Borders"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Borders Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Borders();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				Borders.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Borders;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellStyleFormatsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellStyleFormatsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellStyleFormatsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellFormatWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellFormatWrapperCollection CellFormats { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			CellFormats = new ExtremeML.Spreadsheet.CellFormatWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			CellFormats = new ExtremeML.Spreadsheet.CellFormatWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				CellFormats.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellFormats;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellFormatWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellFormat>
	{
		private string _localName;
		private Nullable<uint> _numberFormatId;
		private Nullable<uint> _fontId;
		private Nullable<uint> _fillId;
		private Nullable<uint> _borderId;
		private Nullable<uint> _formatId;
		private Nullable<bool> _quotePrefix;
		private Nullable<bool> _pivotButton;
		private Nullable<bool> _applyNumberFormat;
		private Nullable<bool> _applyFont;
		private Nullable<bool> _applyFill;
		private Nullable<bool> _applyBorder;
		private Nullable<bool> _applyAlignment;
		private Nullable<bool> _applyProtection;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellFormatWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellFormatWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellFormat wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NumberFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<uint> NumberFormatId
		{
			get { return _numberFormatId; }
			set { OnNumberFormatIdPropertyChanging(ref value, _numberFormatId); SetModified(value, _numberFormatId); _numberFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<uint> FontId
		{
			get { return _fontId; }
			set { OnFontIdPropertyChanging(ref value, _fontId); SetModified(value, _fontId); _fontId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FillId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<uint> FillId
		{
			get { return _fillId; }
			set { OnFillIdPropertyChanging(ref value, _fillId); SetModified(value, _fillId); _fillId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BorderId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<uint> BorderId
		{
			get { return _borderId; }
			set { OnBorderIdPropertyChanging(ref value, _borderId); SetModified(value, _borderId); _borderId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="QuotePrefix"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> QuotePrefix
		{
			get { return _quotePrefix; }
			set { OnQuotePrefixPropertyChanging(ref value, _quotePrefix); SetModified(value, _quotePrefix); _quotePrefix = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PivotButton"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> PivotButton
		{
			get { return _pivotButton; }
			set { OnPivotButtonPropertyChanging(ref value, _pivotButton); SetModified(value, _pivotButton); _pivotButton = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyNumberFormat"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyNumberFormat
		{
			get { return _applyNumberFormat; }
			set { OnApplyNumberFormatPropertyChanging(ref value, _applyNumberFormat); SetModified(value, _applyNumberFormat); _applyNumberFormat = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyFont"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyFont
		{
			get { return _applyFont; }
			set { OnApplyFontPropertyChanging(ref value, _applyFont); SetModified(value, _applyFont); _applyFont = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyFill"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyFill
		{
			get { return _applyFill; }
			set { OnApplyFillPropertyChanging(ref value, _applyFill); SetModified(value, _applyFill); _applyFill = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyBorder"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyBorder
		{
			get { return _applyBorder; }
			set { OnApplyBorderPropertyChanging(ref value, _applyBorder); SetModified(value, _applyBorder); _applyBorder = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyAlignment
		{
			get { return _applyAlignment; }
			set { OnApplyAlignmentPropertyChanging(ref value, _applyAlignment); SetModified(value, _applyAlignment); _applyAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyProtection"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.
		/// </summary>
		public Nullable<bool> ApplyProtection
		{
			get { return _applyProtection; }
			set { OnApplyProtectionPropertyChanging(ref value, _applyProtection); SetModified(value, _applyProtection); _applyProtection = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AlignmentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AlignmentWrapper Alignment { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ProtectionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ProtectionWrapper Protection { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNumberFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFontIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFillIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnBorderIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnQuotePrefixPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPivotButtonPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyNumberFormatPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyFontPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyFillPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyBorderPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyAlignmentPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyProtectionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_numberFormatId = default(Nullable<uint>);
			_fontId = default(Nullable<uint>);
			_fillId = default(Nullable<uint>);
			_borderId = default(Nullable<uint>);
			_formatId = default(Nullable<uint>);
			_quotePrefix = default(Nullable<bool>);
			_pivotButton = default(Nullable<bool>);
			_applyNumberFormat = default(Nullable<bool>);
			_applyFont = default(Nullable<bool>);
			_applyFill = default(Nullable<bool>);
			_applyBorder = default(Nullable<bool>);
			_applyAlignment = default(Nullable<bool>);
			_applyProtection = default(Nullable<bool>);
			Alignment = new ExtremeML.Spreadsheet.AlignmentWrapper(null, this, Package);
			Protection = new ExtremeML.Spreadsheet.ProtectionWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_numberFormatId = Wrapped.NumberFormatId == null ? null : Wrapped.NumberFormatId.ToNullable();
			_fontId = Wrapped.FontId == null ? null : Wrapped.FontId.ToNullable();
			_fillId = Wrapped.FillId == null ? null : Wrapped.FillId.ToNullable();
			_borderId = Wrapped.BorderId == null ? null : Wrapped.BorderId.ToNullable();
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			_quotePrefix = Wrapped.QuotePrefix == null ? null : Wrapped.QuotePrefix.ToNullable();
			_pivotButton = Wrapped.PivotButton == null ? null : Wrapped.PivotButton.ToNullable();
			_applyNumberFormat = Wrapped.ApplyNumberFormat == null ? null : Wrapped.ApplyNumberFormat.ToNullable();
			_applyFont = Wrapped.ApplyFont == null ? null : Wrapped.ApplyFont.ToNullable();
			_applyFill = Wrapped.ApplyFill == null ? null : Wrapped.ApplyFill.ToNullable();
			_applyBorder = Wrapped.ApplyBorder == null ? null : Wrapped.ApplyBorder.ToNullable();
			_applyAlignment = Wrapped.ApplyAlignment == null ? null : Wrapped.ApplyAlignment.ToNullable();
			_applyProtection = Wrapped.ApplyProtection == null ? null : Wrapped.ApplyProtection.ToNullable();
			Alignment = new ExtremeML.Spreadsheet.AlignmentWrapper(Wrapped.Alignment, this, Package);
			Protection = new ExtremeML.Spreadsheet.ProtectionWrapper(Wrapped.Protection, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormat"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellFormat Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellFormat();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.NumberFormatId = _numberFormatId.HasValue ? _numberFormatId.ToUInt32Value() : null;
				result.FontId = _fontId.HasValue ? _fontId.ToUInt32Value() : null;
				result.FillId = _fillId.HasValue ? _fillId.ToUInt32Value() : null;
				result.BorderId = _borderId.HasValue ? _borderId.ToUInt32Value() : null;
				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;
				result.QuotePrefix = _quotePrefix.HasValue ? _quotePrefix.ToBooleanValue() : null;
				result.PivotButton = _pivotButton.HasValue ? _pivotButton.ToBooleanValue() : null;
				result.ApplyNumberFormat = _applyNumberFormat.HasValue ? _applyNumberFormat.ToBooleanValue() : null;
				result.ApplyFont = _applyFont.HasValue ? _applyFont.ToBooleanValue() : null;
				result.ApplyFill = _applyFill.HasValue ? _applyFill.ToBooleanValue() : null;
				result.ApplyBorder = _applyBorder.HasValue ? _applyBorder.ToBooleanValue() : null;
				result.ApplyAlignment = _applyAlignment.HasValue ? _applyAlignment.ToBooleanValue() : null;
				result.ApplyProtection = _applyProtection.HasValue ? _applyProtection.ToBooleanValue() : null;
				result.Alignment = Alignment.Recompose();
				result.Protection = Protection.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Alignment;
			yield return Protection;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormats"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellFormatsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellFormats>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellFormatsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormats"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellFormatsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellFormats wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormats"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormats"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellFormatWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellFormatWrapperCollection CellFormats { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			CellFormats = new ExtremeML.Spreadsheet.CellFormatWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			CellFormats = new ExtremeML.Spreadsheet.CellFormatWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormats"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellFormats Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellFormats();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				CellFormats.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellFormats;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyles"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellStylesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellStyles>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellStylesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyles"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellStylesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellStyles wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyles"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyles"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellStyleWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellStyleWrapperCollection CellStyles { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			CellStyles = new ExtremeML.Spreadsheet.CellStyleWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			CellStyles = new ExtremeML.Spreadsheet.CellStyleWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyles"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellStyles Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellStyles();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				CellStyles.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellStyles;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellStyleWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellStyle>
	{
		private string _localName;
		private string _name;
		private Nullable<uint> _formatId;
		private Nullable<uint> _builtinId;
		private Nullable<uint> _outlineLevel;
		private Nullable<bool> _hidden;
		private Nullable<bool> _customBuiltin;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellStyleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellStyleWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellStyle wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BuiltinId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public Nullable<uint> BuiltinId
		{
			get { return _builtinId; }
			set { OnBuiltinIdPropertyChanging(ref value, _builtinId); SetModified(value, _builtinId); _builtinId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineLevel"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public Nullable<uint> OutlineLevel
		{
			get { return _outlineLevel; }
			set { OnOutlineLevelPropertyChanging(ref value, _outlineLevel); SetModified(value, _outlineLevel); _outlineLevel = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomBuiltin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.
		/// </summary>
		public Nullable<bool> CustomBuiltin
		{
			get { return _customBuiltin; }
			set { OnCustomBuiltinPropertyChanging(ref value, _customBuiltin); SetModified(value, _customBuiltin); _customBuiltin = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnBuiltinIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnOutlineLevelPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCustomBuiltinPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_formatId = default(Nullable<uint>);
			_builtinId = default(Nullable<uint>);
			_outlineLevel = default(Nullable<uint>);
			_hidden = default(Nullable<bool>);
			_customBuiltin = default(Nullable<bool>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			_builtinId = Wrapped.BuiltinId == null ? null : Wrapped.BuiltinId.ToNullable();
			_outlineLevel = Wrapped.OutlineLevel == null ? null : Wrapped.OutlineLevel.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
			_customBuiltin = Wrapped.CustomBuiltin == null ? null : Wrapped.CustomBuiltin.ToNullable();
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellStyle"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellStyle Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellStyle();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;
				result.BuiltinId = _builtinId.HasValue ? _builtinId.ToUInt32Value() : null;
				result.OutlineLevel = _outlineLevel.HasValue ? _outlineLevel.ToUInt32Value() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;
				result.CustomBuiltin = _customBuiltin.HasValue ? _customBuiltin.ToBooleanValue() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStylesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableStyles>
	{
		private string _localName;
		private Nullable<uint> _count;
		private string _defaultTableStyle;
		private string _defaultPivotStyle;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStylesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStylesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableStyles wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTableStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> instance.
		/// </summary>
		public string DefaultTableStyle
		{
			get { return _defaultTableStyle; }
			set { OnDefaultTableStylePropertyChanging(ref value, _defaultTableStyle); SetModified(value, _defaultTableStyle); _defaultTableStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultPivotStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> instance.
		/// </summary>
		public string DefaultPivotStyle
		{
			get { return _defaultPivotStyle; }
			set { OnDefaultPivotStylePropertyChanging(ref value, _defaultPivotStyle); SetModified(value, _defaultPivotStyle); _defaultPivotStyle = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableStyleWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableStyleWrapperCollection TableStyles { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDefaultTableStylePropertyChanging(ref string modified, string original);
		partial void OnDefaultPivotStylePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			_defaultTableStyle = default(string);
			_defaultPivotStyle = default(string);
			TableStyles = new ExtremeML.Spreadsheet.TableStyleWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_defaultTableStyle = Wrapped.DefaultTableStyle == null ? null : Wrapped.DefaultTableStyle.ToString();
			_defaultPivotStyle = Wrapped.DefaultPivotStyle == null ? null : Wrapped.DefaultPivotStyle.ToString();
			TableStyles = new ExtremeML.Spreadsheet.TableStyleWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyles"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableStyles Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableStyles();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.DefaultTableStyle = _defaultTableStyle == null ? null : StringValue.FromString(_defaultTableStyle);
				result.DefaultPivotStyle = _defaultPivotStyle == null ? null : StringValue.FromString(_defaultPivotStyle);
				TableStyles.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return TableStyles;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStyleWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableStyle>
	{
		private string _localName;
		private string _name;
		private Nullable<bool> _pivot;
		private Nullable<bool> _table;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStyleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStyleWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableStyle wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Pivot"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.
		/// </summary>
		public Nullable<bool> Pivot
		{
			get { return _pivot; }
			set { OnPivotPropertyChanging(ref value, _pivot); SetModified(value, _pivot); _pivot = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Table"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.
		/// </summary>
		public Nullable<bool> Table
		{
			get { return _table; }
			set { OnTablePropertyChanging(ref value, _table); SetModified(value, _table); _table = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableStyleElementWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableStyleElementWrapperCollection TableStyleElements { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnPivotPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTablePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_pivot = default(Nullable<bool>);
			_table = default(Nullable<bool>);
			_count = default(Nullable<uint>);
			TableStyleElements = new ExtremeML.Spreadsheet.TableStyleElementWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_pivot = Wrapped.Pivot == null ? null : Wrapped.Pivot.ToNullable();
			_table = Wrapped.Table == null ? null : Wrapped.Table.ToNullable();
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			TableStyleElements = new ExtremeML.Spreadsheet.TableStyleElementWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyle"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableStyle Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableStyle();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Pivot = _pivot.HasValue ? _pivot.ToBooleanValue() : null;
				result.Table = _table.HasValue ? _table.ToBooleanValue() : null;
				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				TableStyleElements.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return TableStyleElements;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStyleElementWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableStyleElement>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TableStyleValues> _type;
		private Nullable<uint> _size;
		private Nullable<uint> _formatId;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStyleElementWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStyleElementWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableStyleElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TableStyleValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Size"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> instance.
		/// </summary>
		public Nullable<uint> Size
		{
			get { return _size; }
			set { OnSizePropertyChanging(ref value, _size); SetModified(value, _size); _size = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TableStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TableStyleValues> original);
		partial void OnSizePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TableStyleValues>);
			_size = default(Nullable<uint>);
			_formatId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_size = Wrapped.Size == null ? null : Wrapped.Size.ToNullable();
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleElement"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableStyleElement Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableStyleElement();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Size = _size.HasValue ? _size.ToUInt32Value() : null;
				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Theme"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ThemeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Theme>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="ThemeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Theme"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ThemeWrapper(
			DocumentFormat.OpenXml.Drawing.Theme wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Theme"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Theme"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ThemeElementsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ThemeElementsWrapper ThemeElements { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ObjectDefaultsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ObjectDefaultsWrapper ObjectDefaults { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtraColorSchemeListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtraColorSchemeListWrapper ExtraColorSchemeList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.CustomColorListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.CustomColorListWrapper CustomColorList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			ThemeElements = new ExtremeML.Drawing.ThemeElementsWrapper(null, this, Package);
			ObjectDefaults = new ExtremeML.Drawing.ObjectDefaultsWrapper(null, this, Package);
			ExtraColorSchemeList = new ExtremeML.Drawing.ExtraColorSchemeListWrapper(null, this, Package);
			CustomColorList = new ExtremeML.Drawing.CustomColorListWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			ThemeElements = new ExtremeML.Drawing.ThemeElementsWrapper(Wrapped.ThemeElements, this, Package);
			ObjectDefaults = new ExtremeML.Drawing.ObjectDefaultsWrapper(Wrapped.ObjectDefaults, this, Package);
			ExtraColorSchemeList = new ExtremeML.Drawing.ExtraColorSchemeListWrapper(Wrapped.ExtraColorSchemeList, this, Package);
			CustomColorList = new ExtremeML.Drawing.CustomColorListWrapper(Wrapped.CustomColorList, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Theme"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Drawing.Theme wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.ThemeElements = ThemeElements.Recompose();
				result.ObjectDefaults = ObjectDefaults.Recompose();
				result.ExtraColorSchemeList = ExtraColorSchemeList.Recompose();
				result.CustomColorList = CustomColorList.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ThemeElements;
			yield return ObjectDefaults;
			yield return ExtraColorSchemeList;
			yield return CustomColorList;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ObjectDefaults"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ObjectDefaultsWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ObjectDefaults>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ObjectDefaultsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ObjectDefaults"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ObjectDefaultsWrapper(
			DocumentFormat.OpenXml.Drawing.ObjectDefaults wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ObjectDefaults"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapeDefaultWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapeDefaultWrapper ShapeDefault { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineDefaultWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineDefaultWrapper LineDefault { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TextDefaultWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TextDefaultWrapper TextDefault { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ShapeDefault = new ExtremeML.Drawing.ShapeDefaultWrapper(null, this, Package);
			LineDefault = new ExtremeML.Drawing.LineDefaultWrapper(null, this, Package);
			TextDefault = new ExtremeML.Drawing.TextDefaultWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ShapeDefault = new ExtremeML.Drawing.ShapeDefaultWrapper(Wrapped.ShapeDefault, this, Package);
			LineDefault = new ExtremeML.Drawing.LineDefaultWrapper(Wrapped.LineDefault, this, Package);
			TextDefault = new ExtremeML.Drawing.TextDefaultWrapper(Wrapped.TextDefault, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ObjectDefaults"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ObjectDefaults Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ObjectDefaults();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShapeDefault = ShapeDefault.Recompose();
				result.LineDefault = LineDefault.Recompose();
				result.TextDefault = TextDefault.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ShapeDefault;
			yield return LineDefault;
			yield return TextDefault;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.TextDefault"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TextDefaultWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.TextDefault>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="TextDefaultWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.TextDefault"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TextDefaultWrapper(
			DocumentFormat.OpenXml.Drawing.TextDefault wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TextDefault"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapePropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapePropertiesWrapper ShapeProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BodyPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BodyPropertiesWrapper BodyProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ListStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ListStyleWrapper ListStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapeStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapeStyleWrapper ShapeStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(null, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(null, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(null, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(Wrapped.ShapeProperties, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(Wrapped.BodyProperties, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(Wrapped.ListStyle, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(Wrapped.ShapeStyle, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.TextDefault"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.TextDefault Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.TextDefault();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShapeProperties = ShapeProperties.Recompose();
				result.BodyProperties = BodyProperties.Recompose();
				result.ListStyle = ListStyle.Recompose();
				result.ShapeStyle = ShapeStyle.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ShapeProperties;
			yield return BodyProperties;
			yield return ListStyle;
			yield return ShapeStyle;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BodyPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.BodyProperties>
	{
		private string _localName;
		private Nullable<int> _rotation;
		private Nullable<bool> _useParagraphSpacing;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalOverflowValues> _verticalOverflow;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextHorizontalOverflowValues> _horizontalOverflow;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalValues> _vertical;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextWrappingValues> _wrap;
		private Nullable<int> _leftInset;
		private Nullable<int> _topInset;
		private Nullable<int> _rightInset;
		private Nullable<int> _bottomInset;
		private Nullable<int> _columnCount;
		private Nullable<int> _columnSpacing;
		private Nullable<bool> _rightToLeftColumns;
		private Nullable<bool> _fromWordArt;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAnchoringTypeValues> _anchor;
		private Nullable<bool> _anchorCenter;
		private Nullable<bool> _forceAntiAlias;
		private Nullable<bool> _upRight;
		private Nullable<bool> _compatibleLineSpacing;

		/// <summary>
		/// Initializes a new instance of the <see cref="BodyPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BodyPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.BodyProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rotation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> Rotation
		{
			get { return _rotation; }
			set { OnRotationPropertyChanging(ref value, _rotation); SetModified(value, _rotation); _rotation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UseParagraphSpacing"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> UseParagraphSpacing
		{
			get { return _useParagraphSpacing; }
			set { OnUseParagraphSpacingPropertyChanging(ref value, _useParagraphSpacing); SetModified(value, _useParagraphSpacing); _useParagraphSpacing = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VerticalOverflow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalOverflowValues> VerticalOverflow
		{
			get { return _verticalOverflow; }
			set { OnVerticalOverflowPropertyChanging(ref value, _verticalOverflow); SetModified(value, _verticalOverflow); _verticalOverflow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HorizontalOverflow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextHorizontalOverflowValues> HorizontalOverflow
		{
			get { return _horizontalOverflow; }
			set { OnHorizontalOverflowPropertyChanging(ref value, _horizontalOverflow); SetModified(value, _horizontalOverflow); _horizontalOverflow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Vertical"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalValues> Vertical
		{
			get { return _vertical; }
			set { OnVerticalPropertyChanging(ref value, _vertical); SetModified(value, _vertical); _vertical = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Wrap"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextWrappingValues> Wrap
		{
			get { return _wrap; }
			set { OnWrapPropertyChanging(ref value, _wrap); SetModified(value, _wrap); _wrap = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftInset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftInset
		{
			get { return _leftInset; }
			set { OnLeftInsetPropertyChanging(ref value, _leftInset); SetModified(value, _leftInset); _leftInset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TopInset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> TopInset
		{
			get { return _topInset; }
			set { OnTopInsetPropertyChanging(ref value, _topInset); SetModified(value, _topInset); _topInset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightInset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> RightInset
		{
			get { return _rightInset; }
			set { OnRightInsetPropertyChanging(ref value, _rightInset); SetModified(value, _rightInset); _rightInset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BottomInset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> BottomInset
		{
			get { return _bottomInset; }
			set { OnBottomInsetPropertyChanging(ref value, _bottomInset); SetModified(value, _bottomInset); _bottomInset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColumnCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> ColumnCount
		{
			get { return _columnCount; }
			set { OnColumnCountPropertyChanging(ref value, _columnCount); SetModified(value, _columnCount); _columnCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColumnSpacing"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<int> ColumnSpacing
		{
			get { return _columnSpacing; }
			set { OnColumnSpacingPropertyChanging(ref value, _columnSpacing); SetModified(value, _columnSpacing); _columnSpacing = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeftColumns"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeftColumns
		{
			get { return _rightToLeftColumns; }
			set { OnRightToLeftColumnsPropertyChanging(ref value, _rightToLeftColumns); SetModified(value, _rightToLeftColumns); _rightToLeftColumns = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FromWordArt"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> FromWordArt
		{
			get { return _fromWordArt; }
			set { OnFromWordArtPropertyChanging(ref value, _fromWordArt); SetModified(value, _fromWordArt); _fromWordArt = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Anchor"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAnchoringTypeValues> Anchor
		{
			get { return _anchor; }
			set { OnAnchorPropertyChanging(ref value, _anchor); SetModified(value, _anchor); _anchor = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AnchorCenter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> AnchorCenter
		{
			get { return _anchorCenter; }
			set { OnAnchorCenterPropertyChanging(ref value, _anchorCenter); SetModified(value, _anchorCenter); _anchorCenter = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ForceAntiAlias"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> ForceAntiAlias
		{
			get { return _forceAntiAlias; }
			set { OnForceAntiAliasPropertyChanging(ref value, _forceAntiAlias); SetModified(value, _forceAntiAlias); _forceAntiAlias = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UpRight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> UpRight
		{
			get { return _upRight; }
			set { OnUpRightPropertyChanging(ref value, _upRight); SetModified(value, _upRight); _upRight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CompatibleLineSpacing"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.
		/// </summary>
		public Nullable<bool> CompatibleLineSpacing
		{
			get { return _compatibleLineSpacing; }
			set { OnCompatibleLineSpacingPropertyChanging(ref value, _compatibleLineSpacing); SetModified(value, _compatibleLineSpacing); _compatibleLineSpacing = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetTextWrapWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetTextWrapWrapper PresetTextWrap { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Scene3DTypeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Scene3DTypeWrapper Scene3DType { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnRotationPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnUseParagraphSpacingPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnVerticalOverflowPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalOverflowValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalOverflowValues> original);
		partial void OnHorizontalOverflowPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextHorizontalOverflowValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextHorizontalOverflowValues> original);
		partial void OnVerticalPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalValues> original);
		partial void OnWrapPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextWrappingValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextWrappingValues> original);
		partial void OnLeftInsetPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnTopInsetPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightInsetPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnBottomInsetPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnColumnCountPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnColumnSpacingPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftColumnsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFromWordArtPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAnchorPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAnchoringTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAnchoringTypeValues> original);
		partial void OnAnchorCenterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnForceAntiAliasPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUpRightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCompatibleLineSpacingPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_rotation = default(Nullable<int>);
			_useParagraphSpacing = default(Nullable<bool>);
			_verticalOverflow = default(Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalOverflowValues>);
			_horizontalOverflow = default(Nullable<DocumentFormat.OpenXml.Drawing.TextHorizontalOverflowValues>);
			_vertical = default(Nullable<DocumentFormat.OpenXml.Drawing.TextVerticalValues>);
			_wrap = default(Nullable<DocumentFormat.OpenXml.Drawing.TextWrappingValues>);
			_leftInset = default(Nullable<int>);
			_topInset = default(Nullable<int>);
			_rightInset = default(Nullable<int>);
			_bottomInset = default(Nullable<int>);
			_columnCount = default(Nullable<int>);
			_columnSpacing = default(Nullable<int>);
			_rightToLeftColumns = default(Nullable<bool>);
			_fromWordArt = default(Nullable<bool>);
			_anchor = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAnchoringTypeValues>);
			_anchorCenter = default(Nullable<bool>);
			_forceAntiAlias = default(Nullable<bool>);
			_upRight = default(Nullable<bool>);
			_compatibleLineSpacing = default(Nullable<bool>);
			PresetTextWrap = new ExtremeML.Drawing.PresetTextWrapWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_rotation = Wrapped.Rotation == null ? null : Wrapped.Rotation.ToNullable();
			_useParagraphSpacing = Wrapped.UseParagraphSpacing == null ? null : Wrapped.UseParagraphSpacing.ToNullable();
			_leftInset = Wrapped.LeftInset == null ? null : Wrapped.LeftInset.ToNullable();
			_topInset = Wrapped.TopInset == null ? null : Wrapped.TopInset.ToNullable();
			_rightInset = Wrapped.RightInset == null ? null : Wrapped.RightInset.ToNullable();
			_bottomInset = Wrapped.BottomInset == null ? null : Wrapped.BottomInset.ToNullable();
			_columnCount = Wrapped.ColumnCount == null ? null : Wrapped.ColumnCount.ToNullable();
			_columnSpacing = Wrapped.ColumnSpacing == null ? null : Wrapped.ColumnSpacing.ToNullable();
			_rightToLeftColumns = Wrapped.RightToLeftColumns == null ? null : Wrapped.RightToLeftColumns.ToNullable();
			_fromWordArt = Wrapped.FromWordArt == null ? null : Wrapped.FromWordArt.ToNullable();
			_anchorCenter = Wrapped.AnchorCenter == null ? null : Wrapped.AnchorCenter.ToNullable();
			_forceAntiAlias = Wrapped.ForceAntiAlias == null ? null : Wrapped.ForceAntiAlias.ToNullable();
			_upRight = Wrapped.UpRight == null ? null : Wrapped.UpRight.ToNullable();
			_compatibleLineSpacing = Wrapped.CompatibleLineSpacing == null ? null : Wrapped.CompatibleLineSpacing.ToNullable();
			if (Wrapped.VerticalOverflow != null) _verticalOverflow = Wrapped.VerticalOverflow;
			if (Wrapped.HorizontalOverflow != null) _horizontalOverflow = Wrapped.HorizontalOverflow;
			if (Wrapped.Vertical != null) _vertical = Wrapped.Vertical;
			if (Wrapped.Wrap != null) _wrap = Wrapped.Wrap;
			if (Wrapped.Anchor != null) _anchor = Wrapped.Anchor;
			PresetTextWrap = new ExtremeML.Drawing.PresetTextWrapWrapper(Wrapped.PresetTextWrap, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Scene3DType>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.BodyProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.BodyProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.BodyProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.VerticalOverflow = _verticalOverflow;
				result.HorizontalOverflow = _horizontalOverflow;
				result.Vertical = _vertical;
				result.Wrap = _wrap;
				result.Anchor = _anchor;
				result.Rotation = _rotation.HasValue ? _rotation.ToInt32Value() : null;
				result.UseParagraphSpacing = _useParagraphSpacing.HasValue ? _useParagraphSpacing.ToBooleanValue() : null;
				result.LeftInset = _leftInset.HasValue ? _leftInset.ToInt32Value() : null;
				result.TopInset = _topInset.HasValue ? _topInset.ToInt32Value() : null;
				result.RightInset = _rightInset.HasValue ? _rightInset.ToInt32Value() : null;
				result.BottomInset = _bottomInset.HasValue ? _bottomInset.ToInt32Value() : null;
				result.ColumnCount = _columnCount.HasValue ? _columnCount.ToInt32Value() : null;
				result.ColumnSpacing = _columnSpacing.HasValue ? _columnSpacing.ToInt32Value() : null;
				result.RightToLeftColumns = _rightToLeftColumns.HasValue ? _rightToLeftColumns.ToBooleanValue() : null;
				result.FromWordArt = _fromWordArt.HasValue ? _fromWordArt.ToBooleanValue() : null;
				result.AnchorCenter = _anchorCenter.HasValue ? _anchorCenter.ToBooleanValue() : null;
				result.ForceAntiAlias = _forceAntiAlias.HasValue ? _forceAntiAlias.ToBooleanValue() : null;
				result.UpRight = _upRight.HasValue ? _upRight.ToBooleanValue() : null;
				result.CompatibleLineSpacing = _compatibleLineSpacing.HasValue ? _compatibleLineSpacing.ToBooleanValue() : null;
				result.PresetTextWrap = PresetTextWrap.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Scene3DType>();
				result.AppendChild(Scene3DType.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return PresetTextWrap;
			yield return ExtensionList;
			yield return Scene3DType;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtensionListWrapper(
			DocumentFormat.OpenXml.Drawing.ExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.PresetTextWrap"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PresetTextWrapWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.PresetTextWrap>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextShapeValues> _preset;

		/// <summary>
		/// Initializes a new instance of the <see cref="PresetTextWrapWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.PresetTextWrap"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PresetTextWrapWrapper(
			DocumentFormat.OpenXml.Drawing.PresetTextWrap wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.PresetTextWrap"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Preset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.PresetTextWrap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextShapeValues> Preset
		{
			get { return _preset; }
			set { OnPresetPropertyChanging(ref value, _preset); SetModified(value, _preset); _preset = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.AdjustValueListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.AdjustValueListWrapper AdjustValueList { get; private set; }
		
		partial void OnPresetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextShapeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextShapeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_preset = default(Nullable<DocumentFormat.OpenXml.Drawing.TextShapeValues>);
			AdjustValueList = new ExtremeML.Drawing.AdjustValueListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Preset != null) _preset = Wrapped.Preset;
			AdjustValueList = new ExtremeML.Drawing.AdjustValueListWrapper(Wrapped.AdjustValueList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.PresetTextWrap"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.PresetTextWrap Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.PresetTextWrap();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Preset = _preset;
				result.AdjustValueList = AdjustValueList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return AdjustValueList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.AdjustValueList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AdjustValueListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.AdjustValueList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="AdjustValueListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.AdjustValueList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AdjustValueListWrapper(
			DocumentFormat.OpenXml.Drawing.AdjustValueList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.AdjustValueList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapeGuideWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapeGuideWrapperCollection ShapeGuides { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ShapeGuides = new ExtremeML.Drawing.ShapeGuideWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ShapeGuides = new ExtremeML.Drawing.ShapeGuideWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.AdjustValueList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.AdjustValueList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.AdjustValueList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ShapeGuides.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ShapeGuides;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapeGuideWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ShapeGuide>
	{
		private string _localName;
		private string _name;
		private string _formula;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapeGuideWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapeGuideWrapper(
			DocumentFormat.OpenXml.Drawing.ShapeGuide wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Formula"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> instance.
		/// </summary>
		public string Formula
		{
			get { return _formula; }
			set { OnFormulaPropertyChanging(ref value, _formula); SetModified(value, _formula); _formula = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnFormulaPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_formula = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_formula = Wrapped.Formula == null ? null : Wrapped.Formula.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ShapeGuide"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ShapeGuide Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ShapeGuide();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Formula = _formula == null ? null : StringValue.FromString(_formula);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Scene3DType"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Scene3DTypeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Scene3DType>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="Scene3DTypeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Scene3DType"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Scene3DTypeWrapper(
			DocumentFormat.OpenXml.Drawing.Scene3DType wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Scene3DType"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.CameraWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.CameraWrapper Camera { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LightRigWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LightRigWrapper LightRig { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BackdropWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BackdropWrapper Backdrop { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Camera = new ExtremeML.Drawing.CameraWrapper(null, this, Package);
			LightRig = new ExtremeML.Drawing.LightRigWrapper(null, this, Package);
			Backdrop = new ExtremeML.Drawing.BackdropWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Camera = new ExtremeML.Drawing.CameraWrapper(Wrapped.Camera, this, Package);
			LightRig = new ExtremeML.Drawing.LightRigWrapper(Wrapped.LightRig, this, Package);
			Backdrop = new ExtremeML.Drawing.BackdropWrapper(Wrapped.Backdrop, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Scene3DType"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Scene3DType Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Scene3DType();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Camera = Camera.Recompose();
				result.LightRig = LightRig.Recompose();
				result.Backdrop = Backdrop.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Camera;
			yield return LightRig;
			yield return Backdrop;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Backdrop"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BackdropWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Backdrop>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="BackdropWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Backdrop"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BackdropWrapper(
			DocumentFormat.OpenXml.Drawing.Backdrop wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Backdrop"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.AnchorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.AnchorWrapper Anchor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.NormalWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.NormalWrapper Normal { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.UpVectorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.UpVectorWrapper UpVector { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Anchor = new ExtremeML.Drawing.AnchorWrapper(null, this, Package);
			Normal = new ExtremeML.Drawing.NormalWrapper(null, this, Package);
			UpVector = new ExtremeML.Drawing.UpVectorWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Anchor = new ExtremeML.Drawing.AnchorWrapper(Wrapped.Anchor, this, Package);
			Normal = new ExtremeML.Drawing.NormalWrapper(Wrapped.Normal, this, Package);
			UpVector = new ExtremeML.Drawing.UpVectorWrapper(Wrapped.UpVector, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Backdrop"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Backdrop Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Backdrop();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Anchor = Anchor.Recompose();
				result.Normal = Normal.Recompose();
				result.UpVector = UpVector.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Anchor;
			yield return Normal;
			yield return UpVector;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AnchorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Anchor>
	{
		private string _localName;
		private Nullable<int> _x;
		private Nullable<int> _y;
		private Nullable<int> _z;

		/// <summary>
		/// Initializes a new instance of the <see cref="AnchorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AnchorWrapper(
			DocumentFormat.OpenXml.Drawing.Anchor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="X"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> instance.
		/// </summary>
		public Nullable<int> X
		{
			get { return _x; }
			set { OnXPropertyChanging(ref value, _x); SetModified(value, _x); _x = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Y"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> instance.
		/// </summary>
		public Nullable<int> Y
		{
			get { return _y; }
			set { OnYPropertyChanging(ref value, _y); SetModified(value, _y); _y = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Z"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> instance.
		/// </summary>
		public Nullable<int> Z
		{
			get { return _z; }
			set { OnZPropertyChanging(ref value, _z); SetModified(value, _z); _z = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnXPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnYPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnZPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_x = default(Nullable<int>);
			_y = default(Nullable<int>);
			_z = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_x = Wrapped.X == null ? null : Wrapped.X.ToNullable();
			_y = Wrapped.Y == null ? null : Wrapped.Y.ToNullable();
			_z = Wrapped.Z == null ? null : Wrapped.Z.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Anchor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Anchor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Anchor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.X = _x.HasValue ? _x.ToInt64Value() : null;
				result.Y = _y.HasValue ? _y.ToInt64Value() : null;
				result.Z = _z.HasValue ? _z.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class NormalWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Normal>
	{
		private string _localName;
		private Nullable<int> _dx;
		private Nullable<int> _dy;
		private Nullable<int> _dz;

		/// <summary>
		/// Initializes a new instance of the <see cref="NormalWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal NormalWrapper(
			DocumentFormat.OpenXml.Drawing.Normal wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dx"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> instance.
		/// </summary>
		public Nullable<int> Dx
		{
			get { return _dx; }
			set { OnDxPropertyChanging(ref value, _dx); SetModified(value, _dx); _dx = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dy"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> instance.
		/// </summary>
		public Nullable<int> Dy
		{
			get { return _dy; }
			set { OnDyPropertyChanging(ref value, _dy); SetModified(value, _dy); _dy = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dz"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> instance.
		/// </summary>
		public Nullable<int> Dz
		{
			get { return _dz; }
			set { OnDzPropertyChanging(ref value, _dz); SetModified(value, _dz); _dz = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDxPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnDyPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnDzPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_dx = default(Nullable<int>);
			_dy = default(Nullable<int>);
			_dz = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_dx = Wrapped.Dx == null ? null : Wrapped.Dx.ToNullable();
			_dy = Wrapped.Dy == null ? null : Wrapped.Dy.ToNullable();
			_dz = Wrapped.Dz == null ? null : Wrapped.Dz.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Normal"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Normal Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Normal();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Dx = _dx.HasValue ? _dx.ToInt64Value() : null;
				result.Dy = _dy.HasValue ? _dy.ToInt64Value() : null;
				result.Dz = _dz.HasValue ? _dz.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class UpVectorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.UpVector>
	{
		private string _localName;
		private Nullable<int> _dx;
		private Nullable<int> _dy;
		private Nullable<int> _dz;

		/// <summary>
		/// Initializes a new instance of the <see cref="UpVectorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal UpVectorWrapper(
			DocumentFormat.OpenXml.Drawing.UpVector wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dx"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> instance.
		/// </summary>
		public Nullable<int> Dx
		{
			get { return _dx; }
			set { OnDxPropertyChanging(ref value, _dx); SetModified(value, _dx); _dx = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dy"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> instance.
		/// </summary>
		public Nullable<int> Dy
		{
			get { return _dy; }
			set { OnDyPropertyChanging(ref value, _dy); SetModified(value, _dy); _dy = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dz"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> instance.
		/// </summary>
		public Nullable<int> Dz
		{
			get { return _dz; }
			set { OnDzPropertyChanging(ref value, _dz); SetModified(value, _dz); _dz = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDxPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnDyPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnDzPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_dx = default(Nullable<int>);
			_dy = default(Nullable<int>);
			_dz = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_dx = Wrapped.Dx == null ? null : Wrapped.Dx.ToNullable();
			_dy = Wrapped.Dy == null ? null : Wrapped.Dy.ToNullable();
			_dz = Wrapped.Dz == null ? null : Wrapped.Dz.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.UpVector"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.UpVector Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.UpVector();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Dx = _dx.HasValue ? _dx.ToInt64Value() : null;
				result.Dy = _dy.HasValue ? _dy.ToInt64Value() : null;
				result.Dz = _dz.HasValue ? _dz.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CameraWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Camera>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.PresetCameraValues> _preset;
		private Nullable<int> _fieldOfView;
		private Nullable<int> _zoom;

		/// <summary>
		/// Initializes a new instance of the <see cref="CameraWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CameraWrapper(
			DocumentFormat.OpenXml.Drawing.Camera wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Preset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.PresetCameraValues> Preset
		{
			get { return _preset; }
			set { OnPresetPropertyChanging(ref value, _preset); SetModified(value, _preset); _preset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FieldOfView"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> instance.
		/// </summary>
		public Nullable<int> FieldOfView
		{
			get { return _fieldOfView; }
			set { OnFieldOfViewPropertyChanging(ref value, _fieldOfView); SetModified(value, _fieldOfView); _fieldOfView = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Zoom"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> instance.
		/// </summary>
		public Nullable<int> Zoom
		{
			get { return _zoom; }
			set { OnZoomPropertyChanging(ref value, _zoom); SetModified(value, _zoom); _zoom = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RotationWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RotationWrapper Rotation { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPresetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.PresetCameraValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.PresetCameraValues> original);
		partial void OnFieldOfViewPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnZoomPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_preset = default(Nullable<DocumentFormat.OpenXml.Drawing.PresetCameraValues>);
			_fieldOfView = default(Nullable<int>);
			_zoom = default(Nullable<int>);
			Rotation = new ExtremeML.Drawing.RotationWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_fieldOfView = Wrapped.FieldOfView == null ? null : Wrapped.FieldOfView.ToNullable();
			_zoom = Wrapped.Zoom == null ? null : Wrapped.Zoom.ToNullable();
			if (Wrapped.Preset != null) _preset = Wrapped.Preset;
			Rotation = new ExtremeML.Drawing.RotationWrapper(Wrapped.Rotation, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Camera"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Camera Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Camera();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Preset = _preset;
				result.FieldOfView = _fieldOfView.HasValue ? _fieldOfView.ToInt32Value() : null;
				result.Zoom = _zoom.HasValue ? _zoom.ToInt32Value() : null;
				result.Rotation = Rotation.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Rotation;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RotationWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Rotation>
	{
		private string _localName;
		private Nullable<int> _latitude;
		private Nullable<int> _longitude;
		private Nullable<int> _revolution;

		/// <summary>
		/// Initializes a new instance of the <see cref="RotationWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RotationWrapper(
			DocumentFormat.OpenXml.Drawing.Rotation wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Latitude"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> instance.
		/// </summary>
		public Nullable<int> Latitude
		{
			get { return _latitude; }
			set { OnLatitudePropertyChanging(ref value, _latitude); SetModified(value, _latitude); _latitude = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Longitude"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> instance.
		/// </summary>
		public Nullable<int> Longitude
		{
			get { return _longitude; }
			set { OnLongitudePropertyChanging(ref value, _longitude); SetModified(value, _longitude); _longitude = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Revolution"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> instance.
		/// </summary>
		public Nullable<int> Revolution
		{
			get { return _revolution; }
			set { OnRevolutionPropertyChanging(ref value, _revolution); SetModified(value, _revolution); _revolution = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLatitudePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLongitudePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRevolutionPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_latitude = default(Nullable<int>);
			_longitude = default(Nullable<int>);
			_revolution = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_latitude = Wrapped.Latitude == null ? null : Wrapped.Latitude.ToNullable();
			_longitude = Wrapped.Longitude == null ? null : Wrapped.Longitude.ToNullable();
			_revolution = Wrapped.Revolution == null ? null : Wrapped.Revolution.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Rotation"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Rotation Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Rotation();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Latitude = _latitude.HasValue ? _latitude.ToInt32Value() : null;
				result.Longitude = _longitude.HasValue ? _longitude.ToInt32Value() : null;
				result.Revolution = _revolution.HasValue ? _revolution.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LightRigWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LightRig>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.LightRigValues> _rig;
		private Nullable<DocumentFormat.OpenXml.Drawing.LightRigDirectionValues> _direction;

		/// <summary>
		/// Initializes a new instance of the <see cref="LightRigWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LightRigWrapper(
			DocumentFormat.OpenXml.Drawing.LightRig wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rig"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LightRigValues> Rig
		{
			get { return _rig; }
			set { OnRigPropertyChanging(ref value, _rig); SetModified(value, _rig); _rig = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Direction"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LightRigDirectionValues> Direction
		{
			get { return _direction; }
			set { OnDirectionPropertyChanging(ref value, _direction); SetModified(value, _direction); _direction = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RotationWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RotationWrapper Rotation { get; private set; }
		
		partial void OnRigPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LightRigValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LightRigValues> original);
		partial void OnDirectionPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LightRigDirectionValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LightRigDirectionValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_rig = default(Nullable<DocumentFormat.OpenXml.Drawing.LightRigValues>);
			_direction = default(Nullable<DocumentFormat.OpenXml.Drawing.LightRigDirectionValues>);
			Rotation = new ExtremeML.Drawing.RotationWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Rig != null) _rig = Wrapped.Rig;
			if (Wrapped.Direction != null) _direction = Wrapped.Direction;
			Rotation = new ExtremeML.Drawing.RotationWrapper(Wrapped.Rotation, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LightRig"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LightRig Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LightRig();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Rig = _rig;
				result.Direction = _direction;
				result.Rotation = Rotation.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Rotation;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ListStyle"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ListStyleWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ListStyle>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ListStyleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ListStyle"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ListStyleWrapper(
			DocumentFormat.OpenXml.Drawing.ListStyle wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ListStyle"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultParagraphPropertiesWrapper DefaultParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level1ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level1ParagraphPropertiesWrapper Level1ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level2ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level2ParagraphPropertiesWrapper Level2ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level3ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level3ParagraphPropertiesWrapper Level3ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level4ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level4ParagraphPropertiesWrapper Level4ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level5ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level5ParagraphPropertiesWrapper Level5ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level6ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level6ParagraphPropertiesWrapper Level6ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level7ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level7ParagraphPropertiesWrapper Level7ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level8ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level8ParagraphPropertiesWrapper Level8ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Level9ParagraphPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Level9ParagraphPropertiesWrapper Level9ParagraphProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			DefaultParagraphProperties = new ExtremeML.Drawing.DefaultParagraphPropertiesWrapper(null, this, Package);
			Level1ParagraphProperties = new ExtremeML.Drawing.Level1ParagraphPropertiesWrapper(null, this, Package);
			Level2ParagraphProperties = new ExtremeML.Drawing.Level2ParagraphPropertiesWrapper(null, this, Package);
			Level3ParagraphProperties = new ExtremeML.Drawing.Level3ParagraphPropertiesWrapper(null, this, Package);
			Level4ParagraphProperties = new ExtremeML.Drawing.Level4ParagraphPropertiesWrapper(null, this, Package);
			Level5ParagraphProperties = new ExtremeML.Drawing.Level5ParagraphPropertiesWrapper(null, this, Package);
			Level6ParagraphProperties = new ExtremeML.Drawing.Level6ParagraphPropertiesWrapper(null, this, Package);
			Level7ParagraphProperties = new ExtremeML.Drawing.Level7ParagraphPropertiesWrapper(null, this, Package);
			Level8ParagraphProperties = new ExtremeML.Drawing.Level8ParagraphPropertiesWrapper(null, this, Package);
			Level9ParagraphProperties = new ExtremeML.Drawing.Level9ParagraphPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			DefaultParagraphProperties = new ExtremeML.Drawing.DefaultParagraphPropertiesWrapper(Wrapped.DefaultParagraphProperties, this, Package);
			Level1ParagraphProperties = new ExtremeML.Drawing.Level1ParagraphPropertiesWrapper(Wrapped.Level1ParagraphProperties, this, Package);
			Level2ParagraphProperties = new ExtremeML.Drawing.Level2ParagraphPropertiesWrapper(Wrapped.Level2ParagraphProperties, this, Package);
			Level3ParagraphProperties = new ExtremeML.Drawing.Level3ParagraphPropertiesWrapper(Wrapped.Level3ParagraphProperties, this, Package);
			Level4ParagraphProperties = new ExtremeML.Drawing.Level4ParagraphPropertiesWrapper(Wrapped.Level4ParagraphProperties, this, Package);
			Level5ParagraphProperties = new ExtremeML.Drawing.Level5ParagraphPropertiesWrapper(Wrapped.Level5ParagraphProperties, this, Package);
			Level6ParagraphProperties = new ExtremeML.Drawing.Level6ParagraphPropertiesWrapper(Wrapped.Level6ParagraphProperties, this, Package);
			Level7ParagraphProperties = new ExtremeML.Drawing.Level7ParagraphPropertiesWrapper(Wrapped.Level7ParagraphProperties, this, Package);
			Level8ParagraphProperties = new ExtremeML.Drawing.Level8ParagraphPropertiesWrapper(Wrapped.Level8ParagraphProperties, this, Package);
			Level9ParagraphProperties = new ExtremeML.Drawing.Level9ParagraphPropertiesWrapper(Wrapped.Level9ParagraphProperties, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ListStyle"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ListStyle Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ListStyle();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DefaultParagraphProperties = DefaultParagraphProperties.Recompose();
				result.Level1ParagraphProperties = Level1ParagraphProperties.Recompose();
				result.Level2ParagraphProperties = Level2ParagraphProperties.Recompose();
				result.Level3ParagraphProperties = Level3ParagraphProperties.Recompose();
				result.Level4ParagraphProperties = Level4ParagraphProperties.Recompose();
				result.Level5ParagraphProperties = Level5ParagraphProperties.Recompose();
				result.Level6ParagraphProperties = Level6ParagraphProperties.Recompose();
				result.Level7ParagraphProperties = Level7ParagraphProperties.Recompose();
				result.Level8ParagraphProperties = Level8ParagraphProperties.Recompose();
				result.Level9ParagraphProperties = Level9ParagraphProperties.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DefaultParagraphProperties;
			yield return Level1ParagraphProperties;
			yield return Level2ParagraphProperties;
			yield return Level3ParagraphProperties;
			yield return Level4ParagraphProperties;
			yield return Level5ParagraphProperties;
			yield return Level6ParagraphProperties;
			yield return Level7ParagraphProperties;
			yield return Level8ParagraphProperties;
			yield return Level9ParagraphProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level8ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level8ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level8ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level8ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LineSpacing"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LineSpacingWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LineSpacing>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="LineSpacingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LineSpacing"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LineSpacingWrapper(
			DocumentFormat.OpenXml.Drawing.LineSpacing wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LineSpacing"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPercentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPercentWrapper SpacingPercent { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPointsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPointsWrapper SpacingPoints { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(null, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(Wrapped.SpacingPercent, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(Wrapped.SpacingPoints, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LineSpacing"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LineSpacing Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LineSpacing();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SpacingPercent = SpacingPercent.Recompose();
				result.SpacingPoints = SpacingPoints.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return SpacingPercent;
			yield return SpacingPoints;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SpacingPercent"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SpacingPercentWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SpacingPercent>
	{
		private string _localName;
		private Nullable<int> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="SpacingPercentWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SpacingPercent"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SpacingPercentWrapper(
			DocumentFormat.OpenXml.Drawing.SpacingPercent wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpacingPercent"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpacingPercent"/> instance.
		/// </summary>
		public Nullable<int> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SpacingPercent"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SpacingPercent Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SpacingPercent();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SpacingPoints"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SpacingPointsWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SpacingPoints>
	{
		private string _localName;
		private Nullable<int> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="SpacingPointsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SpacingPoints"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SpacingPointsWrapper(
			DocumentFormat.OpenXml.Drawing.SpacingPoints wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpacingPoints"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpacingPoints"/> instance.
		/// </summary>
		public Nullable<int> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SpacingPoints"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SpacingPoints Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SpacingPoints();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SpaceBefore"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SpaceBeforeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SpaceBefore>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SpaceBeforeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SpaceBefore"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SpaceBeforeWrapper(
			DocumentFormat.OpenXml.Drawing.SpaceBefore wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpaceBefore"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPercentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPercentWrapper SpacingPercent { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPointsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPointsWrapper SpacingPoints { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(null, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(Wrapped.SpacingPercent, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(Wrapped.SpacingPoints, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SpaceBefore"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SpaceBefore Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SpaceBefore();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SpacingPercent = SpacingPercent.Recompose();
				result.SpacingPoints = SpacingPoints.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return SpacingPercent;
			yield return SpacingPoints;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SpaceAfter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SpaceAfterWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SpaceAfter>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SpaceAfterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SpaceAfter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SpaceAfterWrapper(
			DocumentFormat.OpenXml.Drawing.SpaceAfter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SpaceAfter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPercentWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPercentWrapper SpacingPercent { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpacingPointsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpacingPointsWrapper SpacingPoints { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(null, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SpacingPercent = new ExtremeML.Drawing.SpacingPercentWrapper(Wrapped.SpacingPercent, this, Package);
			SpacingPoints = new ExtremeML.Drawing.SpacingPointsWrapper(Wrapped.SpacingPoints, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SpaceAfter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SpaceAfter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SpaceAfter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SpacingPercent = SpacingPercent.Recompose();
				result.SpacingPoints = SpacingPoints.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return SpacingPercent;
			yield return SpacingPoints;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.TabStopList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TabStopListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.TabStopList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="TabStopListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.TabStopList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TabStopListWrapper(
			DocumentFormat.OpenXml.Drawing.TabStopList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TabStopList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.TabStopList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.TabStopList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.TabStopList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DefaultRunPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>
	{
		private string _localName;
		private Nullable<bool> _kumimoji;
		private string _language;
		private string _alternativeLanguage;
		private Nullable<int> _fontSize;
		private Nullable<bool> _bold;
		private Nullable<bool> _italic;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextUnderlineValues> _underline;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextStrikeValues> _strike;
		private Nullable<int> _kerning;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextCapsValues> _capital;
		private Nullable<int> _spacing;
		private Nullable<bool> _normalizeHeight;
		private Nullable<int> _baseline;
		private Nullable<bool> _noProof;
		private Nullable<bool> _dirty;
		private Nullable<bool> _spellingError;
		private Nullable<bool> _smartTagClean;
		private Nullable<uint> _smartTagId;
		private string _bookmark;

		/// <summary>
		/// Initializes a new instance of the <see cref="DefaultRunPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DefaultRunPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.DefaultRunProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Kumimoji"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> Kumimoji
		{
			get { return _kumimoji; }
			set { OnKumimojiPropertyChanging(ref value, _kumimoji); SetModified(value, _kumimoji); _kumimoji = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Language"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public string Language
		{
			get { return _language; }
			set { OnLanguagePropertyChanging(ref value, _language); SetModified(value, _language); _language = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlternativeLanguage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public string AlternativeLanguage
		{
			get { return _alternativeLanguage; }
			set { OnAlternativeLanguagePropertyChanging(ref value, _alternativeLanguage); SetModified(value, _alternativeLanguage); _alternativeLanguage = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<int> FontSize
		{
			get { return _fontSize; }
			set { OnFontSizePropertyChanging(ref value, _fontSize); SetModified(value, _fontSize); _fontSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Bold"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> Bold
		{
			get { return _bold; }
			set { OnBoldPropertyChanging(ref value, _bold); SetModified(value, _bold); _bold = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Italic"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> Italic
		{
			get { return _italic; }
			set { OnItalicPropertyChanging(ref value, _italic); SetModified(value, _italic); _italic = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Underline"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextUnderlineValues> Underline
		{
			get { return _underline; }
			set { OnUnderlinePropertyChanging(ref value, _underline); SetModified(value, _underline); _underline = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Strike"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextStrikeValues> Strike
		{
			get { return _strike; }
			set { OnStrikePropertyChanging(ref value, _strike); SetModified(value, _strike); _strike = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Kerning"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<int> Kerning
		{
			get { return _kerning; }
			set { OnKerningPropertyChanging(ref value, _kerning); SetModified(value, _kerning); _kerning = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Capital"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextCapsValues> Capital
		{
			get { return _capital; }
			set { OnCapitalPropertyChanging(ref value, _capital); SetModified(value, _capital); _capital = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Spacing"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<int> Spacing
		{
			get { return _spacing; }
			set { OnSpacingPropertyChanging(ref value, _spacing); SetModified(value, _spacing); _spacing = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NormalizeHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> NormalizeHeight
		{
			get { return _normalizeHeight; }
			set { OnNormalizeHeightPropertyChanging(ref value, _normalizeHeight); SetModified(value, _normalizeHeight); _normalizeHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Baseline"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<int> Baseline
		{
			get { return _baseline; }
			set { OnBaselinePropertyChanging(ref value, _baseline); SetModified(value, _baseline); _baseline = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NoProof"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> NoProof
		{
			get { return _noProof; }
			set { OnNoProofPropertyChanging(ref value, _noProof); SetModified(value, _noProof); _noProof = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dirty"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> Dirty
		{
			get { return _dirty; }
			set { OnDirtyPropertyChanging(ref value, _dirty); SetModified(value, _dirty); _dirty = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SpellingError"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> SpellingError
		{
			get { return _spellingError; }
			set { OnSpellingErrorPropertyChanging(ref value, _spellingError); SetModified(value, _spellingError); _spellingError = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SmartTagClean"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<bool> SmartTagClean
		{
			get { return _smartTagClean; }
			set { OnSmartTagCleanPropertyChanging(ref value, _smartTagClean); SetModified(value, _smartTagClean); _smartTagClean = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SmartTagId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public Nullable<uint> SmartTagId
		{
			get { return _smartTagId; }
			set { OnSmartTagIdPropertyChanging(ref value, _smartTagId); SetModified(value, _smartTagId); _smartTagId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Bookmark"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.
		/// </summary>
		public string Bookmark
		{
			get { return _bookmark; }
			set { OnBookmarkPropertyChanging(ref value, _bookmark); SetModified(value, _bookmark); _bookmark = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.OutlineWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.OutlineWrapper Outline { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ComplexScriptFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ComplexScriptFontWrapper ComplexScriptFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HyperlinkOnClickWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HyperlinkOnClickWrapper HyperlinkOnClick { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HyperlinkOnMouseOverWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HyperlinkOnMouseOverWrapper HyperlinkOnMouseOver { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LatinFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LatinFontWrapper LatinFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EastAsianFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EastAsianFontWrapper EastAsianFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HighlightWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HighlightWrapper Highlight { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SymbolFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SymbolFontWrapper SymbolFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnKumimojiPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLanguagePropertyChanging(ref string modified, string original);
		partial void OnAlternativeLanguagePropertyChanging(ref string modified, string original);
		partial void OnFontSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnBoldPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnItalicPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUnderlinePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextUnderlineValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextUnderlineValues> original);
		partial void OnStrikePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextStrikeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextStrikeValues> original);
		partial void OnKerningPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnCapitalPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextCapsValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextCapsValues> original);
		partial void OnSpacingPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnNormalizeHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBaselinePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnNoProofPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDirtyPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSpellingErrorPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSmartTagCleanPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSmartTagIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnBookmarkPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_kumimoji = default(Nullable<bool>);
			_language = default(string);
			_alternativeLanguage = default(string);
			_fontSize = default(Nullable<int>);
			_bold = default(Nullable<bool>);
			_italic = default(Nullable<bool>);
			_underline = default(Nullable<DocumentFormat.OpenXml.Drawing.TextUnderlineValues>);
			_strike = default(Nullable<DocumentFormat.OpenXml.Drawing.TextStrikeValues>);
			_kerning = default(Nullable<int>);
			_capital = default(Nullable<DocumentFormat.OpenXml.Drawing.TextCapsValues>);
			_spacing = default(Nullable<int>);
			_normalizeHeight = default(Nullable<bool>);
			_baseline = default(Nullable<int>);
			_noProof = default(Nullable<bool>);
			_dirty = default(Nullable<bool>);
			_spellingError = default(Nullable<bool>);
			_smartTagClean = default(Nullable<bool>);
			_smartTagId = default(Nullable<uint>);
			_bookmark = default(string);
			Outline = new ExtremeML.Drawing.OutlineWrapper(null, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(null, this, Package);
			HyperlinkOnClick = new ExtremeML.Drawing.HyperlinkOnClickWrapper(null, this, Package);
			HyperlinkOnMouseOver = new ExtremeML.Drawing.HyperlinkOnMouseOverWrapper(null, this, Package);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(null, this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(null, this, Package);
			Highlight = new ExtremeML.Drawing.HighlightWrapper(null, this, Package);
			SymbolFont = new ExtremeML.Drawing.SymbolFontWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_kumimoji = Wrapped.Kumimoji == null ? null : Wrapped.Kumimoji.ToNullable();
			_language = Wrapped.Language == null ? null : Wrapped.Language.ToString();
			_alternativeLanguage = Wrapped.AlternativeLanguage == null ? null : Wrapped.AlternativeLanguage.ToString();
			_fontSize = Wrapped.FontSize == null ? null : Wrapped.FontSize.ToNullable();
			_bold = Wrapped.Bold == null ? null : Wrapped.Bold.ToNullable();
			_italic = Wrapped.Italic == null ? null : Wrapped.Italic.ToNullable();
			_kerning = Wrapped.Kerning == null ? null : Wrapped.Kerning.ToNullable();
			_spacing = Wrapped.Spacing == null ? null : Wrapped.Spacing.ToNullable();
			_normalizeHeight = Wrapped.NormalizeHeight == null ? null : Wrapped.NormalizeHeight.ToNullable();
			_baseline = Wrapped.Baseline == null ? null : Wrapped.Baseline.ToNullable();
			_noProof = Wrapped.NoProof == null ? null : Wrapped.NoProof.ToNullable();
			_dirty = Wrapped.Dirty == null ? null : Wrapped.Dirty.ToNullable();
			_spellingError = Wrapped.SpellingError == null ? null : Wrapped.SpellingError.ToNullable();
			_smartTagClean = Wrapped.SmartTagClean == null ? null : Wrapped.SmartTagClean.ToNullable();
			_smartTagId = Wrapped.SmartTagId == null ? null : Wrapped.SmartTagId.ToNullable();
			_bookmark = Wrapped.Bookmark == null ? null : Wrapped.Bookmark.ToString();
			if (Wrapped.Underline != null) _underline = Wrapped.Underline;
			if (Wrapped.Strike != null) _strike = Wrapped.Strike;
			if (Wrapped.Capital != null) _capital = Wrapped.Capital;
			Outline = new ExtremeML.Drawing.OutlineWrapper(Wrapped.Outline, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ComplexScriptFont>(), this, Package);
			HyperlinkOnClick = new ExtremeML.Drawing.HyperlinkOnClickWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.HyperlinkOnClick>(), this, Package);
			HyperlinkOnMouseOver = new ExtremeML.Drawing.HyperlinkOnMouseOverWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver>(), this, Package);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.LatinFont>(), this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.EastAsianFont>(), this, Package);
			Highlight = new ExtremeML.Drawing.HighlightWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Highlight>(), this, Package);
			SymbolFont = new ExtremeML.Drawing.SymbolFontWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.SymbolFont>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.DefaultRunProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.DefaultRunProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.DefaultRunProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Underline = _underline;
				result.Strike = _strike;
				result.Capital = _capital;
				result.Kumimoji = _kumimoji.HasValue ? _kumimoji.ToBooleanValue() : null;
				result.Language = _language == null ? null : StringValue.FromString(_language);
				result.AlternativeLanguage = _alternativeLanguage == null ? null : StringValue.FromString(_alternativeLanguage);
				result.FontSize = _fontSize.HasValue ? _fontSize.ToInt32Value() : null;
				result.Bold = _bold.HasValue ? _bold.ToBooleanValue() : null;
				result.Italic = _italic.HasValue ? _italic.ToBooleanValue() : null;
				result.Kerning = _kerning.HasValue ? _kerning.ToInt32Value() : null;
				result.Spacing = _spacing.HasValue ? _spacing.ToInt32Value() : null;
				result.NormalizeHeight = _normalizeHeight.HasValue ? _normalizeHeight.ToBooleanValue() : null;
				result.Baseline = _baseline.HasValue ? _baseline.ToInt32Value() : null;
				result.NoProof = _noProof.HasValue ? _noProof.ToBooleanValue() : null;
				result.Dirty = _dirty.HasValue ? _dirty.ToBooleanValue() : null;
				result.SpellingError = _spellingError.HasValue ? _spellingError.ToBooleanValue() : null;
				result.SmartTagClean = _smartTagClean.HasValue ? _smartTagClean.ToBooleanValue() : null;
				result.SmartTagId = _smartTagId.HasValue ? _smartTagId.ToUInt32Value() : null;
				result.Bookmark = _bookmark == null ? null : StringValue.FromString(_bookmark);
				result.Outline = Outline.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ComplexScriptFont>();
				result.AppendChild(ComplexScriptFont.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.HyperlinkOnClick>();
				result.AppendChild(HyperlinkOnClick.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver>();
				result.AppendChild(HyperlinkOnMouseOver.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.LatinFont>();
				result.AppendChild(LatinFont.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.EastAsianFont>();
				result.AppendChild(EastAsianFont.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Highlight>();
				result.AppendChild(Highlight.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.SymbolFont>();
				result.AppendChild(SymbolFont.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Outline;
			yield return ComplexScriptFont;
			yield return HyperlinkOnClick;
			yield return HyperlinkOnMouseOver;
			yield return LatinFont;
			yield return EastAsianFont;
			yield return Highlight;
			yield return SymbolFont;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ComplexScriptFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ComplexScriptFont>
	{
		private string _localName;
		private string _typeface;
		private string _panose;
		private Nullable<sbyte> _pitchFamily;
		private Nullable<sbyte> _characterSet;

		/// <summary>
		/// Initializes a new instance of the <see cref="ComplexScriptFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ComplexScriptFontWrapper(
			DocumentFormat.OpenXml.Drawing.ComplexScriptFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Typeface"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.
		/// </summary>
		public string Typeface
		{
			get { return _typeface; }
			set { OnTypefacePropertyChanging(ref value, _typeface); SetModified(value, _typeface); _typeface = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Panose"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.
		/// </summary>
		public string Panose
		{
			get { return _panose; }
			set { OnPanosePropertyChanging(ref value, _panose); SetModified(value, _panose); _panose = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PitchFamily"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.
		/// </summary>
		public Nullable<sbyte> PitchFamily
		{
			get { return _pitchFamily; }
			set { OnPitchFamilyPropertyChanging(ref value, _pitchFamily); SetModified(value, _pitchFamily); _pitchFamily = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CharacterSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.
		/// </summary>
		public Nullable<sbyte> CharacterSet
		{
			get { return _characterSet; }
			set { OnCharacterSetPropertyChanging(ref value, _characterSet); SetModified(value, _characterSet); _characterSet = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypefacePropertyChanging(ref string modified, string original);
		partial void OnPanosePropertyChanging(ref string modified, string original);
		partial void OnPitchFamilyPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);
		partial void OnCharacterSetPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_typeface = default(string);
			_panose = default(string);
			_pitchFamily = default(Nullable<sbyte>);
			_characterSet = default(Nullable<sbyte>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_typeface = Wrapped.Typeface == null ? null : Wrapped.Typeface.ToString();
			_panose = Wrapped.Panose == null ? null : Wrapped.Panose.ToString();
			_pitchFamily = Wrapped.PitchFamily == null ? null : Wrapped.PitchFamily.ToNullable();
			_characterSet = Wrapped.CharacterSet == null ? null : Wrapped.CharacterSet.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ComplexScriptFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ComplexScriptFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ComplexScriptFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Typeface = _typeface == null ? null : StringValue.FromString(_typeface);
				result.Panose = _panose == null ? null : HexBinaryValue.FromString(_panose);
				result.PitchFamily = _pitchFamily.HasValue ? _pitchFamily.ToSByteValue() : null;
				result.CharacterSet = _characterSet.HasValue ? _characterSet.ToSByteValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinkOnClickWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.HyperlinkOnClick>
	{
		private string _localName;
		private string _id;
		private string _invalidUrl;
		private string _action;
		private string _targetFrame;
		private string _tooltip;
		private Nullable<bool> _history;
		private Nullable<bool> _highlightClick;
		private Nullable<bool> _endSound;

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinkOnClickWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinkOnClickWrapper(
			DocumentFormat.OpenXml.Drawing.HyperlinkOnClick wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InvalidUrl"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string InvalidUrl
		{
			get { return _invalidUrl; }
			set { OnInvalidUrlPropertyChanging(ref value, _invalidUrl); SetModified(value, _invalidUrl); _invalidUrl = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Action"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string Action
		{
			get { return _action; }
			set { OnActionPropertyChanging(ref value, _action); SetModified(value, _action); _action = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TargetFrame"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string TargetFrame
		{
			get { return _targetFrame; }
			set { OnTargetFramePropertyChanging(ref value, _targetFrame); SetModified(value, _targetFrame); _targetFrame = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Tooltip"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public string Tooltip
		{
			get { return _tooltip; }
			set { OnTooltipPropertyChanging(ref value, _tooltip); SetModified(value, _tooltip); _tooltip = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="History"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public Nullable<bool> History
		{
			get { return _history; }
			set { OnHistoryPropertyChanging(ref value, _history); SetModified(value, _history); _history = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HighlightClick"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public Nullable<bool> HighlightClick
		{
			get { return _highlightClick; }
			set { OnHighlightClickPropertyChanging(ref value, _highlightClick); SetModified(value, _highlightClick); _highlightClick = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EndSound"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.
		/// </summary>
		public Nullable<bool> EndSound
		{
			get { return _endSound; }
			set { OnEndSoundPropertyChanging(ref value, _endSound); SetModified(value, _endSound); _endSound = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HyperlinkSoundWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HyperlinkSoundWrapper HyperlinkSound { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);
		partial void OnInvalidUrlPropertyChanging(ref string modified, string original);
		partial void OnActionPropertyChanging(ref string modified, string original);
		partial void OnTargetFramePropertyChanging(ref string modified, string original);
		partial void OnTooltipPropertyChanging(ref string modified, string original);
		partial void OnHistoryPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHighlightClickPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEndSoundPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
			_invalidUrl = default(string);
			_action = default(string);
			_targetFrame = default(string);
			_tooltip = default(string);
			_history = default(Nullable<bool>);
			_highlightClick = default(Nullable<bool>);
			_endSound = default(Nullable<bool>);
			HyperlinkSound = new ExtremeML.Drawing.HyperlinkSoundWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			_invalidUrl = Wrapped.InvalidUrl == null ? null : Wrapped.InvalidUrl.ToString();
			_action = Wrapped.Action == null ? null : Wrapped.Action.ToString();
			_targetFrame = Wrapped.TargetFrame == null ? null : Wrapped.TargetFrame.ToString();
			_tooltip = Wrapped.Tooltip == null ? null : Wrapped.Tooltip.ToString();
			_history = Wrapped.History == null ? null : Wrapped.History.ToNullable();
			_highlightClick = Wrapped.HighlightClick == null ? null : Wrapped.HighlightClick.ToNullable();
			_endSound = Wrapped.EndSound == null ? null : Wrapped.EndSound.ToNullable();
			HyperlinkSound = new ExtremeML.Drawing.HyperlinkSoundWrapper(Wrapped.HyperlinkSound, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnClick"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.HyperlinkOnClick Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.HyperlinkOnClick();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.InvalidUrl = _invalidUrl == null ? null : StringValue.FromString(_invalidUrl);
				result.Action = _action == null ? null : StringValue.FromString(_action);
				result.TargetFrame = _targetFrame == null ? null : StringValue.FromString(_targetFrame);
				result.Tooltip = _tooltip == null ? null : StringValue.FromString(_tooltip);
				result.History = _history.HasValue ? _history.ToBooleanValue() : null;
				result.HighlightClick = _highlightClick.HasValue ? _highlightClick.ToBooleanValue() : null;
				result.EndSound = _endSound.HasValue ? _endSound.ToBooleanValue() : null;
				result.HyperlinkSound = HyperlinkSound.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return HyperlinkSound;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinkSoundWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.HyperlinkSound>
	{
		private string _localName;
		private string _embed;
		private string _name;
		private Nullable<bool> _builtIn;

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinkSoundWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinkSoundWrapper(
			DocumentFormat.OpenXml.Drawing.HyperlinkSound wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Embed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> instance.
		/// </summary>
		public string Embed
		{
			get { return _embed; }
			set { OnEmbedPropertyChanging(ref value, _embed); SetModified(value, _embed); _embed = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BuiltIn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> instance.
		/// </summary>
		public Nullable<bool> BuiltIn
		{
			get { return _builtIn; }
			set { OnBuiltInPropertyChanging(ref value, _builtIn); SetModified(value, _builtIn); _builtIn = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnEmbedPropertyChanging(ref string modified, string original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnBuiltInPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_embed = default(string);
			_name = default(string);
			_builtIn = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_embed = Wrapped.Embed == null ? null : Wrapped.Embed.ToString();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_builtIn = Wrapped.BuiltIn == null ? null : Wrapped.BuiltIn.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkSound"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.HyperlinkSound Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.HyperlinkSound();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Embed = _embed == null ? null : StringValue.FromString(_embed);
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.BuiltIn = _builtIn.HasValue ? _builtIn.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinkOnMouseOverWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver>
	{
		private string _localName;
		private string _id;
		private string _invalidUrl;
		private string _action;
		private string _targetFrame;
		private string _tooltip;
		private Nullable<bool> _history;
		private Nullable<bool> _highlightClick;
		private Nullable<bool> _endSound;

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinkOnMouseOverWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinkOnMouseOverWrapper(
			DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InvalidUrl"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string InvalidUrl
		{
			get { return _invalidUrl; }
			set { OnInvalidUrlPropertyChanging(ref value, _invalidUrl); SetModified(value, _invalidUrl); _invalidUrl = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Action"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string Action
		{
			get { return _action; }
			set { OnActionPropertyChanging(ref value, _action); SetModified(value, _action); _action = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TargetFrame"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string TargetFrame
		{
			get { return _targetFrame; }
			set { OnTargetFramePropertyChanging(ref value, _targetFrame); SetModified(value, _targetFrame); _targetFrame = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Tooltip"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public string Tooltip
		{
			get { return _tooltip; }
			set { OnTooltipPropertyChanging(ref value, _tooltip); SetModified(value, _tooltip); _tooltip = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="History"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public Nullable<bool> History
		{
			get { return _history; }
			set { OnHistoryPropertyChanging(ref value, _history); SetModified(value, _history); _history = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HighlightClick"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public Nullable<bool> HighlightClick
		{
			get { return _highlightClick; }
			set { OnHighlightClickPropertyChanging(ref value, _highlightClick); SetModified(value, _highlightClick); _highlightClick = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EndSound"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.
		/// </summary>
		public Nullable<bool> EndSound
		{
			get { return _endSound; }
			set { OnEndSoundPropertyChanging(ref value, _endSound); SetModified(value, _endSound); _endSound = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HyperlinkSoundWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HyperlinkSoundWrapper HyperlinkSound { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);
		partial void OnInvalidUrlPropertyChanging(ref string modified, string original);
		partial void OnActionPropertyChanging(ref string modified, string original);
		partial void OnTargetFramePropertyChanging(ref string modified, string original);
		partial void OnTooltipPropertyChanging(ref string modified, string original);
		partial void OnHistoryPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHighlightClickPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEndSoundPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
			_invalidUrl = default(string);
			_action = default(string);
			_targetFrame = default(string);
			_tooltip = default(string);
			_history = default(Nullable<bool>);
			_highlightClick = default(Nullable<bool>);
			_endSound = default(Nullable<bool>);
			HyperlinkSound = new ExtremeML.Drawing.HyperlinkSoundWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			_invalidUrl = Wrapped.InvalidUrl == null ? null : Wrapped.InvalidUrl.ToString();
			_action = Wrapped.Action == null ? null : Wrapped.Action.ToString();
			_targetFrame = Wrapped.TargetFrame == null ? null : Wrapped.TargetFrame.ToString();
			_tooltip = Wrapped.Tooltip == null ? null : Wrapped.Tooltip.ToString();
			_history = Wrapped.History == null ? null : Wrapped.History.ToNullable();
			_highlightClick = Wrapped.HighlightClick == null ? null : Wrapped.HighlightClick.ToNullable();
			_endSound = Wrapped.EndSound == null ? null : Wrapped.EndSound.ToNullable();
			HyperlinkSound = new ExtremeML.Drawing.HyperlinkSoundWrapper(Wrapped.HyperlinkSound, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.InvalidUrl = _invalidUrl == null ? null : StringValue.FromString(_invalidUrl);
				result.Action = _action == null ? null : StringValue.FromString(_action);
				result.TargetFrame = _targetFrame == null ? null : StringValue.FromString(_targetFrame);
				result.Tooltip = _tooltip == null ? null : StringValue.FromString(_tooltip);
				result.History = _history.HasValue ? _history.ToBooleanValue() : null;
				result.HighlightClick = _highlightClick.HasValue ? _highlightClick.ToBooleanValue() : null;
				result.EndSound = _endSound.HasValue ? _endSound.ToBooleanValue() : null;
				result.HyperlinkSound = HyperlinkSound.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return HyperlinkSound;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LatinFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LatinFont>
	{
		private string _localName;
		private string _typeface;
		private string _panose;
		private Nullable<sbyte> _pitchFamily;
		private Nullable<sbyte> _characterSet;

		/// <summary>
		/// Initializes a new instance of the <see cref="LatinFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LatinFontWrapper(
			DocumentFormat.OpenXml.Drawing.LatinFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Typeface"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.
		/// </summary>
		public string Typeface
		{
			get { return _typeface; }
			set { OnTypefacePropertyChanging(ref value, _typeface); SetModified(value, _typeface); _typeface = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Panose"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.
		/// </summary>
		public string Panose
		{
			get { return _panose; }
			set { OnPanosePropertyChanging(ref value, _panose); SetModified(value, _panose); _panose = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PitchFamily"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.
		/// </summary>
		public Nullable<sbyte> PitchFamily
		{
			get { return _pitchFamily; }
			set { OnPitchFamilyPropertyChanging(ref value, _pitchFamily); SetModified(value, _pitchFamily); _pitchFamily = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CharacterSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.
		/// </summary>
		public Nullable<sbyte> CharacterSet
		{
			get { return _characterSet; }
			set { OnCharacterSetPropertyChanging(ref value, _characterSet); SetModified(value, _characterSet); _characterSet = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypefacePropertyChanging(ref string modified, string original);
		partial void OnPanosePropertyChanging(ref string modified, string original);
		partial void OnPitchFamilyPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);
		partial void OnCharacterSetPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_typeface = default(string);
			_panose = default(string);
			_pitchFamily = default(Nullable<sbyte>);
			_characterSet = default(Nullable<sbyte>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_typeface = Wrapped.Typeface == null ? null : Wrapped.Typeface.ToString();
			_panose = Wrapped.Panose == null ? null : Wrapped.Panose.ToString();
			_pitchFamily = Wrapped.PitchFamily == null ? null : Wrapped.PitchFamily.ToNullable();
			_characterSet = Wrapped.CharacterSet == null ? null : Wrapped.CharacterSet.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LatinFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LatinFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LatinFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Typeface = _typeface == null ? null : StringValue.FromString(_typeface);
				result.Panose = _panose == null ? null : HexBinaryValue.FromString(_panose);
				result.PitchFamily = _pitchFamily.HasValue ? _pitchFamily.ToSByteValue() : null;
				result.CharacterSet = _characterSet.HasValue ? _characterSet.ToSByteValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EastAsianFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.EastAsianFont>
	{
		private string _localName;
		private string _typeface;
		private string _panose;
		private Nullable<sbyte> _pitchFamily;
		private Nullable<sbyte> _characterSet;

		/// <summary>
		/// Initializes a new instance of the <see cref="EastAsianFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EastAsianFontWrapper(
			DocumentFormat.OpenXml.Drawing.EastAsianFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Typeface"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.
		/// </summary>
		public string Typeface
		{
			get { return _typeface; }
			set { OnTypefacePropertyChanging(ref value, _typeface); SetModified(value, _typeface); _typeface = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Panose"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.
		/// </summary>
		public string Panose
		{
			get { return _panose; }
			set { OnPanosePropertyChanging(ref value, _panose); SetModified(value, _panose); _panose = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PitchFamily"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.
		/// </summary>
		public Nullable<sbyte> PitchFamily
		{
			get { return _pitchFamily; }
			set { OnPitchFamilyPropertyChanging(ref value, _pitchFamily); SetModified(value, _pitchFamily); _pitchFamily = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CharacterSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.
		/// </summary>
		public Nullable<sbyte> CharacterSet
		{
			get { return _characterSet; }
			set { OnCharacterSetPropertyChanging(ref value, _characterSet); SetModified(value, _characterSet); _characterSet = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypefacePropertyChanging(ref string modified, string original);
		partial void OnPanosePropertyChanging(ref string modified, string original);
		partial void OnPitchFamilyPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);
		partial void OnCharacterSetPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_typeface = default(string);
			_panose = default(string);
			_pitchFamily = default(Nullable<sbyte>);
			_characterSet = default(Nullable<sbyte>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_typeface = Wrapped.Typeface == null ? null : Wrapped.Typeface.ToString();
			_panose = Wrapped.Panose == null ? null : Wrapped.Panose.ToString();
			_pitchFamily = Wrapped.PitchFamily == null ? null : Wrapped.PitchFamily.ToNullable();
			_characterSet = Wrapped.CharacterSet == null ? null : Wrapped.CharacterSet.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.EastAsianFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.EastAsianFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.EastAsianFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Typeface = _typeface == null ? null : StringValue.FromString(_typeface);
				result.Panose = _panose == null ? null : HexBinaryValue.FromString(_panose);
				result.PitchFamily = _pitchFamily.HasValue ? _pitchFamily.ToSByteValue() : null;
				result.CharacterSet = _characterSet.HasValue ? _characterSet.ToSByteValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OutlineWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Outline>
	{
		private string _localName;
		private Nullable<int> _width;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineCapValues> _capType;
		private Nullable<DocumentFormat.OpenXml.Drawing.CompoundLineValues> _compoundLineType;
		private Nullable<DocumentFormat.OpenXml.Drawing.PenAlignmentValues> _alignment;

		/// <summary>
		/// Initializes a new instance of the <see cref="OutlineWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OutlineWrapper(
			DocumentFormat.OpenXml.Drawing.Outline wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.
		/// </summary>
		public Nullable<int> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CapType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineCapValues> CapType
		{
			get { return _capType; }
			set { OnCapTypePropertyChanging(ref value, _capType); SetModified(value, _capType); _capType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CompoundLineType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.CompoundLineValues> CompoundLineType
		{
			get { return _compoundLineType; }
			set { OnCompoundLineTypePropertyChanging(ref value, _compoundLineType); SetModified(value, _compoundLineType); _compoundLineType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.PenAlignmentValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HeadEndWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HeadEndWrapper HeadEnd { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TailEndWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TailEndWrapper TailEnd { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnWidthPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnCapTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineCapValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineCapValues> original);
		partial void OnCompoundLineTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.CompoundLineValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.CompoundLineValues> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.PenAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.PenAlignmentValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_width = default(Nullable<int>);
			_capType = default(Nullable<DocumentFormat.OpenXml.Drawing.LineCapValues>);
			_compoundLineType = default(Nullable<DocumentFormat.OpenXml.Drawing.CompoundLineValues>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.PenAlignmentValues>);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
			HeadEnd = new ExtremeML.Drawing.HeadEndWrapper(null, this, Package);
			TailEnd = new ExtremeML.Drawing.TailEndWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_width = Wrapped.Width == null ? null : Wrapped.Width.ToNullable();
			if (Wrapped.CapType != null) _capType = Wrapped.CapType;
			if (Wrapped.CompoundLineType != null) _compoundLineType = Wrapped.CompoundLineType;
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
			HeadEnd = new ExtremeML.Drawing.HeadEndWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.HeadEnd>(), this, Package);
			TailEnd = new ExtremeML.Drawing.TailEndWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TailEnd>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Outline"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Outline Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Outline();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CapType = _capType;
				result.CompoundLineType = _compoundLineType;
				result.Alignment = _alignment;
				result.Width = _width.HasValue ? _width.ToInt32Value() : null;
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.HeadEnd>();
				result.AppendChild(HeadEnd.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TailEnd>();
				result.AppendChild(TailEnd.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return HeadEnd;
			yield return TailEnd;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HeadEndWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.HeadEnd>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> _type;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> _width;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> _length;

		/// <summary>
		/// Initializes a new instance of the <see cref="HeadEndWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HeadEndWrapper(
			DocumentFormat.OpenXml.Drawing.HeadEnd wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Length"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> Length
		{
			get { return _length; }
			set { OnLengthPropertyChanging(ref value, _length); SetModified(value, _length); _length = value; }	
		}
		
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> original);
		partial void OnWidthPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> original);
		partial void OnLengthPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues>);
			_width = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues>);
			_length = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.Width != null) _width = Wrapped.Width;
			if (Wrapped.Length != null) _length = Wrapped.Length;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.HeadEnd"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.HeadEnd Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.HeadEnd();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Width = _width;
				result.Length = _length;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TailEndWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.TailEnd>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> _type;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> _width;
		private Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> _length;

		/// <summary>
		/// Initializes a new instance of the <see cref="TailEndWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TailEndWrapper(
			DocumentFormat.OpenXml.Drawing.TailEnd wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Length"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> Length
		{
			get { return _length; }
			set { OnLengthPropertyChanging(ref value, _length); SetModified(value, _length); _length = value; }	
		}
		
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues> original);
		partial void OnWidthPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues> original);
		partial void OnLengthPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndValues>);
			_width = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndWidthValues>);
			_length = default(Nullable<DocumentFormat.OpenXml.Drawing.LineEndLengthValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.Width != null) _width = Wrapped.Width;
			if (Wrapped.Length != null) _length = Wrapped.Length;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.TailEnd"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.TailEnd Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.TailEnd();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Width = _width;
				result.Length = _length;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Highlight"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HighlightWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Highlight>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="HighlightWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Highlight"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HighlightWrapper(
			DocumentFormat.OpenXml.Drawing.Highlight wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Highlight"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Highlight"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Highlight Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Highlight();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RgbColorModelHexWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>
	{
		private string _localName;
		private string _val;
		private Nullable<int> _legacySpreadsheetColorIndex;

		/// <summary>
		/// Initializes a new instance of the <see cref="RgbColorModelHexWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RgbColorModelHexWrapper(
			DocumentFormat.OpenXml.Drawing.RgbColorModelHex wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LegacySpreadsheetColorIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> instance.
		/// </summary>
		public Nullable<int> LegacySpreadsheetColorIndex
		{
			get { return _legacySpreadsheetColorIndex; }
			set { OnLegacySpreadsheetColorIndexPropertyChanging(ref value, _legacySpreadsheetColorIndex); SetModified(value, _legacySpreadsheetColorIndex); _legacySpreadsheetColorIndex = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref string modified, string original);
		partial void OnLegacySpreadsheetColorIndexPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(string);
			_legacySpreadsheetColorIndex = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
			_legacySpreadsheetColorIndex = Wrapped.LegacySpreadsheetColorIndex == null ? null : Wrapped.LegacySpreadsheetColorIndex.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelHex"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.RgbColorModelHex Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.RgbColorModelHex();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val == null ? null : HexBinaryValue.FromString(_val);
				result.LegacySpreadsheetColorIndex = _legacySpreadsheetColorIndex.HasValue ? _legacySpreadsheetColorIndex.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SchemeColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SchemeColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SchemeColor>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.SchemeColorValues> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="SchemeColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SchemeColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SchemeColorWrapper(
			DocumentFormat.OpenXml.Drawing.SchemeColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SchemeColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SchemeColor"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.SchemeColorValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.SchemeColorValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.SchemeColorValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Drawing.SchemeColorValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SchemeColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SchemeColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SchemeColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HslColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.HslColor>
	{
		private string _localName;
		private Nullable<int> _hueValue;
		private Nullable<int> _satValue;
		private Nullable<int> _lumValue;

		/// <summary>
		/// Initializes a new instance of the <see cref="HslColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HslColorWrapper(
			DocumentFormat.OpenXml.Drawing.HslColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HueValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> instance.
		/// </summary>
		public Nullable<int> HueValue
		{
			get { return _hueValue; }
			set { OnHueValuePropertyChanging(ref value, _hueValue); SetModified(value, _hueValue); _hueValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SatValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> instance.
		/// </summary>
		public Nullable<int> SatValue
		{
			get { return _satValue; }
			set { OnSatValuePropertyChanging(ref value, _satValue); SetModified(value, _satValue); _satValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LumValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> instance.
		/// </summary>
		public Nullable<int> LumValue
		{
			get { return _lumValue; }
			set { OnLumValuePropertyChanging(ref value, _lumValue); SetModified(value, _lumValue); _lumValue = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnHueValuePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnSatValuePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLumValuePropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_hueValue = default(Nullable<int>);
			_satValue = default(Nullable<int>);
			_lumValue = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_hueValue = Wrapped.HueValue == null ? null : Wrapped.HueValue.ToNullable();
			_satValue = Wrapped.SatValue == null ? null : Wrapped.SatValue.ToNullable();
			_lumValue = Wrapped.LumValue == null ? null : Wrapped.LumValue.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.HslColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.HslColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.HslColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.HueValue = _hueValue.HasValue ? _hueValue.ToInt32Value() : null;
				result.SatValue = _satValue.HasValue ? _satValue.ToInt32Value() : null;
				result.LumValue = _lumValue.HasValue ? _lumValue.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SystemColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SystemColor>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.SystemColorValues> _val;
		private string _lastColor;

		/// <summary>
		/// Initializes a new instance of the <see cref="SystemColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SystemColorWrapper(
			DocumentFormat.OpenXml.Drawing.SystemColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.SystemColorValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LastColor"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> instance.
		/// </summary>
		public string LastColor
		{
			get { return _lastColor; }
			set { OnLastColorPropertyChanging(ref value, _lastColor); SetModified(value, _lastColor); _lastColor = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.SystemColorValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.SystemColorValues> original);
		partial void OnLastColorPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Drawing.SystemColorValues>);
			_lastColor = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_lastColor = Wrapped.LastColor == null ? null : Wrapped.LastColor.ToString();
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SystemColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SystemColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SystemColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;
				result.LastColor = _lastColor == null ? null : HexBinaryValue.FromString(_lastColor);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RgbColorModelPercentageWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage>
	{
		private string _localName;
		private Nullable<int> _redPortion;
		private Nullable<int> _greenPortion;
		private Nullable<int> _bluePortion;

		/// <summary>
		/// Initializes a new instance of the <see cref="RgbColorModelPercentageWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RgbColorModelPercentageWrapper(
			DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RedPortion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> instance.
		/// </summary>
		public Nullable<int> RedPortion
		{
			get { return _redPortion; }
			set { OnRedPortionPropertyChanging(ref value, _redPortion); SetModified(value, _redPortion); _redPortion = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GreenPortion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> instance.
		/// </summary>
		public Nullable<int> GreenPortion
		{
			get { return _greenPortion; }
			set { OnGreenPortionPropertyChanging(ref value, _greenPortion); SetModified(value, _greenPortion); _greenPortion = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BluePortion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> instance.
		/// </summary>
		public Nullable<int> BluePortion
		{
			get { return _bluePortion; }
			set { OnBluePortionPropertyChanging(ref value, _bluePortion); SetModified(value, _bluePortion); _bluePortion = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnRedPortionPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnGreenPortionPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnBluePortionPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_redPortion = default(Nullable<int>);
			_greenPortion = default(Nullable<int>);
			_bluePortion = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_redPortion = Wrapped.RedPortion == null ? null : Wrapped.RedPortion.ToNullable();
			_greenPortion = Wrapped.GreenPortion == null ? null : Wrapped.GreenPortion.ToNullable();
			_bluePortion = Wrapped.BluePortion == null ? null : Wrapped.BluePortion.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.RgbColorModelPercentage();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RedPortion = _redPortion.HasValue ? _redPortion.ToInt32Value() : null;
				result.GreenPortion = _greenPortion.HasValue ? _greenPortion.ToInt32Value() : null;
				result.BluePortion = _bluePortion.HasValue ? _bluePortion.ToInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.PresetColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PresetColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.PresetColor>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.PresetColorValues> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="PresetColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.PresetColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PresetColorWrapper(
			DocumentFormat.OpenXml.Drawing.PresetColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.PresetColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.PresetColor"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.PresetColorValues> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		partial void OnValPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.PresetColorValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.PresetColorValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<DocumentFormat.OpenXml.Drawing.PresetColorValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Val != null) _val = Wrapped.Val;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.PresetColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.PresetColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.PresetColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SymbolFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SymbolFont>
	{
		private string _localName;
		private string _typeface;
		private string _panose;
		private Nullable<sbyte> _pitchFamily;
		private Nullable<sbyte> _characterSet;

		/// <summary>
		/// Initializes a new instance of the <see cref="SymbolFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SymbolFontWrapper(
			DocumentFormat.OpenXml.Drawing.SymbolFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Typeface"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.
		/// </summary>
		public string Typeface
		{
			get { return _typeface; }
			set { OnTypefacePropertyChanging(ref value, _typeface); SetModified(value, _typeface); _typeface = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Panose"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.
		/// </summary>
		public string Panose
		{
			get { return _panose; }
			set { OnPanosePropertyChanging(ref value, _panose); SetModified(value, _panose); _panose = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PitchFamily"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.
		/// </summary>
		public Nullable<sbyte> PitchFamily
		{
			get { return _pitchFamily; }
			set { OnPitchFamilyPropertyChanging(ref value, _pitchFamily); SetModified(value, _pitchFamily); _pitchFamily = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CharacterSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.
		/// </summary>
		public Nullable<sbyte> CharacterSet
		{
			get { return _characterSet; }
			set { OnCharacterSetPropertyChanging(ref value, _characterSet); SetModified(value, _characterSet); _characterSet = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypefacePropertyChanging(ref string modified, string original);
		partial void OnPanosePropertyChanging(ref string modified, string original);
		partial void OnPitchFamilyPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);
		partial void OnCharacterSetPropertyChanging(ref Nullable<sbyte> modified, Nullable<sbyte> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_typeface = default(string);
			_panose = default(string);
			_pitchFamily = default(Nullable<sbyte>);
			_characterSet = default(Nullable<sbyte>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_typeface = Wrapped.Typeface == null ? null : Wrapped.Typeface.ToString();
			_panose = Wrapped.Panose == null ? null : Wrapped.Panose.ToString();
			_pitchFamily = Wrapped.PitchFamily == null ? null : Wrapped.PitchFamily.ToNullable();
			_characterSet = Wrapped.CharacterSet == null ? null : Wrapped.CharacterSet.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SymbolFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SymbolFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SymbolFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Typeface = _typeface == null ? null : StringValue.FromString(_typeface);
				result.Panose = _panose == null ? null : HexBinaryValue.FromString(_panose);
				result.PitchFamily = _pitchFamily.HasValue ? _pitchFamily.ToSByteValue() : null;
				result.CharacterSet = _characterSet.HasValue ? _characterSet.ToSByteValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level4ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level4ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level4ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level4ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level1ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level1ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level1ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level1ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level2ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level2ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level2ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level2ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level3ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level3ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level3ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level3ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DefaultParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="DefaultParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DefaultParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.DefaultParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level5ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level5ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level5ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level5ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level6ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level6ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level6ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level6ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level7ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level7ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level7ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level7ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Level9ParagraphPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties>
	{
		private string _localName;
		private Nullable<int> _leftMargin;
		private Nullable<int> _rightMargin;
		private Nullable<int> _level;
		private Nullable<int> _indent;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> _alignment;
		private Nullable<int> _defaultTabSize;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _eastAsianLineBreak;
		private Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> _fontAlignment;
		private Nullable<bool> _latinLineBreak;
		private Nullable<bool> _height;

		/// <summary>
		/// Initializes a new instance of the <see cref="Level9ParagraphPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Level9ParagraphPropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> LeftMargin
		{
			get { return _leftMargin; }
			set { OnLeftMarginPropertyChanging(ref value, _leftMargin); SetModified(value, _leftMargin); _leftMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightMargin"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> RightMargin
		{
			get { return _rightMargin; }
			set { OnRightMarginPropertyChanging(ref value, _rightMargin); SetModified(value, _rightMargin); _rightMargin = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Level"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Level
		{
			get { return _level; }
			set { OnLevelPropertyChanging(ref value, _level); SetModified(value, _level); _level = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> Indent
		{
			get { return _indent; }
			set { OnIndentPropertyChanging(ref value, _indent); SetModified(value, _indent); _indent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Alignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> Alignment
		{
			get { return _alignment; }
			set { OnAlignmentPropertyChanging(ref value, _alignment); SetModified(value, _alignment); _alignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultTabSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<int> DefaultTabSize
		{
			get { return _defaultTabSize; }
			set { OnDefaultTabSizePropertyChanging(ref value, _defaultTabSize); SetModified(value, _defaultTabSize); _defaultTabSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EastAsianLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> EastAsianLineBreak
		{
			get { return _eastAsianLineBreak; }
			set { OnEastAsianLineBreakPropertyChanging(ref value, _eastAsianLineBreak); SetModified(value, _eastAsianLineBreak); _eastAsianLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FontAlignment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> FontAlignment
		{
			get { return _fontAlignment; }
			set { OnFontAlignmentPropertyChanging(ref value, _fontAlignment); SetModified(value, _fontAlignment); _fontAlignment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LatinLineBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> LatinLineBreak
		{
			get { return _latinLineBreak; }
			set { OnLatinLineBreakPropertyChanging(ref value, _latinLineBreak); SetModified(value, _latinLineBreak); _latinLineBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.
		/// </summary>
		public Nullable<bool> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineSpacingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineSpacingWrapper LineSpacing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceBeforeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceBeforeWrapper SpaceBefore { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SpaceAfterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SpaceAfterWrapper SpaceAfter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.TabStopListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.TabStopListWrapper TabStopList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.DefaultRunPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.DefaultRunPropertiesWrapper DefaultRunProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightMarginPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnLevelPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnIndentPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues> original);
		partial void OnDefaultTabSizePropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEastAsianLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFontAlignmentPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues> original);
		partial void OnLatinLineBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_leftMargin = default(Nullable<int>);
			_rightMargin = default(Nullable<int>);
			_level = default(Nullable<int>);
			_indent = default(Nullable<int>);
			_alignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextAlignmentTypeValues>);
			_defaultTabSize = default(Nullable<int>);
			_rightToLeft = default(Nullable<bool>);
			_eastAsianLineBreak = default(Nullable<bool>);
			_fontAlignment = default(Nullable<DocumentFormat.OpenXml.Drawing.TextFontAlignmentValues>);
			_latinLineBreak = default(Nullable<bool>);
			_height = default(Nullable<bool>);
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(null, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(null, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(null, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(null, this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftMargin = Wrapped.LeftMargin == null ? null : Wrapped.LeftMargin.ToNullable();
			_rightMargin = Wrapped.RightMargin == null ? null : Wrapped.RightMargin.ToNullable();
			_level = Wrapped.Level == null ? null : Wrapped.Level.ToNullable();
			_indent = Wrapped.Indent == null ? null : Wrapped.Indent.ToNullable();
			_defaultTabSize = Wrapped.DefaultTabSize == null ? null : Wrapped.DefaultTabSize.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_eastAsianLineBreak = Wrapped.EastAsianLineBreak == null ? null : Wrapped.EastAsianLineBreak.ToNullable();
			_latinLineBreak = Wrapped.LatinLineBreak == null ? null : Wrapped.LatinLineBreak.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Alignment != null) _alignment = Wrapped.Alignment;
			if (Wrapped.FontAlignment != null) _fontAlignment = Wrapped.FontAlignment;
			LineSpacing = new ExtremeML.Drawing.LineSpacingWrapper(Wrapped.LineSpacing, this, Package);
			SpaceBefore = new ExtremeML.Drawing.SpaceBeforeWrapper(Wrapped.SpaceBefore, this, Package);
			SpaceAfter = new ExtremeML.Drawing.SpaceAfterWrapper(Wrapped.SpaceAfter, this, Package);
			TabStopList = new ExtremeML.Drawing.TabStopListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.TabStopList>(), this, Package);
			DefaultRunProperties = new ExtremeML.Drawing.DefaultRunPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>(), this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Level9ParagraphProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Alignment = _alignment;
				result.FontAlignment = _fontAlignment;
				result.LeftMargin = _leftMargin.HasValue ? _leftMargin.ToInt32Value() : null;
				result.RightMargin = _rightMargin.HasValue ? _rightMargin.ToInt32Value() : null;
				result.Level = _level.HasValue ? _level.ToInt32Value() : null;
				result.Indent = _indent.HasValue ? _indent.ToInt32Value() : null;
				result.DefaultTabSize = _defaultTabSize.HasValue ? _defaultTabSize.ToInt32Value() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.EastAsianLineBreak = _eastAsianLineBreak.HasValue ? _eastAsianLineBreak.ToBooleanValue() : null;
				result.LatinLineBreak = _latinLineBreak.HasValue ? _latinLineBreak.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToBooleanValue() : null;
				result.LineSpacing = LineSpacing.Recompose();
				result.SpaceBefore = SpaceBefore.Recompose();
				result.SpaceAfter = SpaceAfter.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.TabStopList>();
				result.AppendChild(TabStopList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.DefaultRunProperties>();
				result.AppendChild(DefaultRunProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineSpacing;
			yield return SpaceBefore;
			yield return SpaceAfter;
			yield return TabStopList;
			yield return DefaultRunProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ShapeProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapePropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ShapeProperties>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.BlackWhiteModeValues> _blackWhiteMode;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapePropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ShapeProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapePropertiesWrapper(
			DocumentFormat.OpenXml.Drawing.ShapeProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BlackWhiteMode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.BlackWhiteModeValues> BlackWhiteMode
		{
			get { return _blackWhiteMode; }
			set { OnBlackWhiteModePropertyChanging(ref value, _blackWhiteMode); SetModified(value, _blackWhiteMode); _blackWhiteMode = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Transform2DWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Transform2DWrapper Transform2D { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Shape3DTypeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Shape3DTypeWrapper Shape3DType { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapePropertiesExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapePropertiesExtensionListWrapper ShapePropertiesExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.OutlineWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.OutlineWrapper Outline { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Scene3DTypeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Scene3DTypeWrapper Scene3DType { get; private set; }
		
		partial void OnBlackWhiteModePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.BlackWhiteModeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.BlackWhiteModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_blackWhiteMode = default(Nullable<DocumentFormat.OpenXml.Drawing.BlackWhiteModeValues>);
			Transform2D = new ExtremeML.Drawing.Transform2DWrapper(null, this, Package);
			Shape3DType = new ExtremeML.Drawing.Shape3DTypeWrapper(null, this, Package);
			ShapePropertiesExtensionList = new ExtremeML.Drawing.ShapePropertiesExtensionListWrapper(null, this, Package);
			Outline = new ExtremeML.Drawing.OutlineWrapper(null, this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.BlackWhiteMode != null) _blackWhiteMode = Wrapped.BlackWhiteMode;
			Transform2D = new ExtremeML.Drawing.Transform2DWrapper(Wrapped.Transform2D, this, Package);
			Shape3DType = new ExtremeML.Drawing.Shape3DTypeWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Shape3DType>(), this, Package);
			ShapePropertiesExtensionList = new ExtremeML.Drawing.ShapePropertiesExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList>(), this, Package);
			Outline = new ExtremeML.Drawing.OutlineWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Outline>(), this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Scene3DType>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ShapeProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ShapeProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ShapeProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.BlackWhiteMode = _blackWhiteMode;
				result.Transform2D = Transform2D.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Shape3DType>();
				result.AppendChild(Shape3DType.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList>();
				result.AppendChild(ShapePropertiesExtensionList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Outline>();
				result.AppendChild(Outline.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Scene3DType>();
				result.AppendChild(Scene3DType.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Transform2D;
			yield return Shape3DType;
			yield return ShapePropertiesExtensionList;
			yield return Outline;
			yield return Scene3DType;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Shape3DTypeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Shape3DType>
	{
		private string _localName;
		private Nullable<int> _z;
		private Nullable<int> _extrusionHeight;
		private Nullable<int> _contourWidth;
		private Nullable<DocumentFormat.OpenXml.Drawing.PresetMaterialTypeValues> _presetMaterial;

		/// <summary>
		/// Initializes a new instance of the <see cref="Shape3DTypeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Shape3DTypeWrapper(
			DocumentFormat.OpenXml.Drawing.Shape3DType wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Z"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.
		/// </summary>
		public Nullable<int> Z
		{
			get { return _z; }
			set { OnZPropertyChanging(ref value, _z); SetModified(value, _z); _z = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ExtrusionHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.
		/// </summary>
		public Nullable<int> ExtrusionHeight
		{
			get { return _extrusionHeight; }
			set { OnExtrusionHeightPropertyChanging(ref value, _extrusionHeight); SetModified(value, _extrusionHeight); _extrusionHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ContourWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.
		/// </summary>
		public Nullable<int> ContourWidth
		{
			get { return _contourWidth; }
			set { OnContourWidthPropertyChanging(ref value, _contourWidth); SetModified(value, _contourWidth); _contourWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PresetMaterial"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.PresetMaterialTypeValues> PresetMaterial
		{
			get { return _presetMaterial; }
			set { OnPresetMaterialPropertyChanging(ref value, _presetMaterial); SetModified(value, _presetMaterial); _presetMaterial = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BevelTopWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BevelTopWrapper BevelTop { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BevelBottomWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BevelBottomWrapper BevelBottom { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtrusionColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtrusionColorWrapper ExtrusionColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ContourColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ContourColorWrapper ContourColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnZPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnExtrusionHeightPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnContourWidthPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnPresetMaterialPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.PresetMaterialTypeValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.PresetMaterialTypeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_z = default(Nullable<int>);
			_extrusionHeight = default(Nullable<int>);
			_contourWidth = default(Nullable<int>);
			_presetMaterial = default(Nullable<DocumentFormat.OpenXml.Drawing.PresetMaterialTypeValues>);
			BevelTop = new ExtremeML.Drawing.BevelTopWrapper(null, this, Package);
			BevelBottom = new ExtremeML.Drawing.BevelBottomWrapper(null, this, Package);
			ExtrusionColor = new ExtremeML.Drawing.ExtrusionColorWrapper(null, this, Package);
			ContourColor = new ExtremeML.Drawing.ContourColorWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_z = Wrapped.Z == null ? null : Wrapped.Z.ToNullable();
			_extrusionHeight = Wrapped.ExtrusionHeight == null ? null : Wrapped.ExtrusionHeight.ToNullable();
			_contourWidth = Wrapped.ContourWidth == null ? null : Wrapped.ContourWidth.ToNullable();
			if (Wrapped.PresetMaterial != null) _presetMaterial = Wrapped.PresetMaterial;
			BevelTop = new ExtremeML.Drawing.BevelTopWrapper(Wrapped.BevelTop, this, Package);
			BevelBottom = new ExtremeML.Drawing.BevelBottomWrapper(Wrapped.BevelBottom, this, Package);
			ExtrusionColor = new ExtremeML.Drawing.ExtrusionColorWrapper(Wrapped.ExtrusionColor, this, Package);
			ContourColor = new ExtremeML.Drawing.ContourColorWrapper(Wrapped.ContourColor, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Shape3DType"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Shape3DType Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Shape3DType();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.PresetMaterial = _presetMaterial;
				result.Z = _z.HasValue ? _z.ToInt64Value() : null;
				result.ExtrusionHeight = _extrusionHeight.HasValue ? _extrusionHeight.ToInt64Value() : null;
				result.ContourWidth = _contourWidth.HasValue ? _contourWidth.ToInt64Value() : null;
				result.BevelTop = BevelTop.Recompose();
				result.BevelBottom = BevelBottom.Recompose();
				result.ExtrusionColor = ExtrusionColor.Recompose();
				result.ContourColor = ContourColor.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return BevelTop;
			yield return BevelBottom;
			yield return ExtrusionColor;
			yield return ContourColor;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BevelTopWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.BevelTop>
	{
		private string _localName;
		private Nullable<int> _width;
		private Nullable<int> _height;
		private Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> _preset;

		/// <summary>
		/// Initializes a new instance of the <see cref="BevelTopWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BevelTopWrapper(
			DocumentFormat.OpenXml.Drawing.BevelTop wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> instance.
		/// </summary>
		public Nullable<int> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> instance.
		/// </summary>
		public Nullable<int> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Preset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> Preset
		{
			get { return _preset; }
			set { OnPresetPropertyChanging(ref value, _preset); SetModified(value, _preset); _preset = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnWidthPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnHeightPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnPresetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_width = default(Nullable<int>);
			_height = default(Nullable<int>);
			_preset = default(Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_width = Wrapped.Width == null ? null : Wrapped.Width.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Preset != null) _preset = Wrapped.Preset;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.BevelTop"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.BevelTop Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.BevelTop();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Preset = _preset;
				result.Width = _width.HasValue ? _width.ToInt64Value() : null;
				result.Height = _height.HasValue ? _height.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BevelBottomWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.BevelBottom>
	{
		private string _localName;
		private Nullable<int> _width;
		private Nullable<int> _height;
		private Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> _preset;

		/// <summary>
		/// Initializes a new instance of the <see cref="BevelBottomWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BevelBottomWrapper(
			DocumentFormat.OpenXml.Drawing.BevelBottom wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> instance.
		/// </summary>
		public Nullable<int> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> instance.
		/// </summary>
		public Nullable<int> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Preset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> Preset
		{
			get { return _preset; }
			set { OnPresetPropertyChanging(ref value, _preset); SetModified(value, _preset); _preset = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnWidthPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnHeightPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnPresetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_width = default(Nullable<int>);
			_height = default(Nullable<int>);
			_preset = default(Nullable<DocumentFormat.OpenXml.Drawing.BevelPresetValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_width = Wrapped.Width == null ? null : Wrapped.Width.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			if (Wrapped.Preset != null) _preset = Wrapped.Preset;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.BevelBottom"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.BevelBottom Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.BevelBottom();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Preset = _preset;
				result.Width = _width.HasValue ? _width.ToInt64Value() : null;
				result.Height = _height.HasValue ? _height.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ExtrusionColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtrusionColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ExtrusionColor>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtrusionColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ExtrusionColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtrusionColorWrapper(
			DocumentFormat.OpenXml.Drawing.ExtrusionColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ExtrusionColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ExtrusionColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ExtrusionColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ExtrusionColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ContourColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ContourColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ContourColor>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ContourColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ContourColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ContourColorWrapper(
			DocumentFormat.OpenXml.Drawing.ContourColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ContourColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ContourColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ContourColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ContourColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Transform2DWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Transform2D>
	{
		private string _localName;
		private Nullable<int> _rotation;
		private Nullable<bool> _horizontalFlip;
		private Nullable<bool> _verticalFlip;

		/// <summary>
		/// Initializes a new instance of the <see cref="Transform2DWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Transform2DWrapper(
			DocumentFormat.OpenXml.Drawing.Transform2D wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rotation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> instance.
		/// </summary>
		public Nullable<int> Rotation
		{
			get { return _rotation; }
			set { OnRotationPropertyChanging(ref value, _rotation); SetModified(value, _rotation); _rotation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HorizontalFlip"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> instance.
		/// </summary>
		public Nullable<bool> HorizontalFlip
		{
			get { return _horizontalFlip; }
			set { OnHorizontalFlipPropertyChanging(ref value, _horizontalFlip); SetModified(value, _horizontalFlip); _horizontalFlip = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VerticalFlip"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> instance.
		/// </summary>
		public Nullable<bool> VerticalFlip
		{
			get { return _verticalFlip; }
			set { OnVerticalFlipPropertyChanging(ref value, _verticalFlip); SetModified(value, _verticalFlip); _verticalFlip = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.OffsetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.OffsetWrapper Offset { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtentsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtentsWrapper Extents { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnRotationPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnHorizontalFlipPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnVerticalFlipPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_rotation = default(Nullable<int>);
			_horizontalFlip = default(Nullable<bool>);
			_verticalFlip = default(Nullable<bool>);
			Offset = new ExtremeML.Drawing.OffsetWrapper(null, this, Package);
			Extents = new ExtremeML.Drawing.ExtentsWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_rotation = Wrapped.Rotation == null ? null : Wrapped.Rotation.ToNullable();
			_horizontalFlip = Wrapped.HorizontalFlip == null ? null : Wrapped.HorizontalFlip.ToNullable();
			_verticalFlip = Wrapped.VerticalFlip == null ? null : Wrapped.VerticalFlip.ToNullable();
			Offset = new ExtremeML.Drawing.OffsetWrapper(Wrapped.Offset, this, Package);
			Extents = new ExtremeML.Drawing.ExtentsWrapper(Wrapped.Extents, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Transform2D"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Transform2D Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Transform2D();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Rotation = _rotation.HasValue ? _rotation.ToInt32Value() : null;
				result.HorizontalFlip = _horizontalFlip.HasValue ? _horizontalFlip.ToBooleanValue() : null;
				result.VerticalFlip = _verticalFlip.HasValue ? _verticalFlip.ToBooleanValue() : null;
				result.Offset = Offset.Recompose();
				result.Extents = Extents.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Offset;
			yield return Extents;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtentsWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Extents>
	{
		private string _localName;
		private Nullable<int> _cx;
		private Nullable<int> _cy;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtentsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtentsWrapper(
			DocumentFormat.OpenXml.Drawing.Extents wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Cx"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> instance.
		/// </summary>
		public Nullable<int> Cx
		{
			get { return _cx; }
			set { OnCxPropertyChanging(ref value, _cx); SetModified(value, _cx); _cx = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Cy"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> instance.
		/// </summary>
		public Nullable<int> Cy
		{
			get { return _cy; }
			set { OnCyPropertyChanging(ref value, _cy); SetModified(value, _cy); _cy = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCxPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnCyPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cx = default(Nullable<int>);
			_cy = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cx = Wrapped.Cx == null ? null : Wrapped.Cx.ToNullable();
			_cy = Wrapped.Cy == null ? null : Wrapped.Cy.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Extents"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Extents Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Extents();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Cx = _cx.HasValue ? _cx.ToInt64Value() : null;
				result.Cy = _cy.HasValue ? _cy.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OffsetWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Offset>
	{
		private string _localName;
		private Nullable<int> _x;
		private Nullable<int> _y;

		/// <summary>
		/// Initializes a new instance of the <see cref="OffsetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OffsetWrapper(
			DocumentFormat.OpenXml.Drawing.Offset wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="X"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> instance.
		/// </summary>
		public Nullable<int> X
		{
			get { return _x; }
			set { OnXPropertyChanging(ref value, _x); SetModified(value, _x); _x = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Y"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> instance.
		/// </summary>
		public Nullable<int> Y
		{
			get { return _y; }
			set { OnYPropertyChanging(ref value, _y); SetModified(value, _y); _y = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnXPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnYPropertyChanging(ref Nullable<int> modified, Nullable<int> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_x = default(Nullable<int>);
			_y = default(Nullable<int>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_x = Wrapped.X == null ? null : Wrapped.X.ToNullable();
			_y = Wrapped.Y == null ? null : Wrapped.Y.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Offset"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Offset Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Offset();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.X = _x.HasValue ? _x.ToInt64Value() : null;
				result.Y = _y.HasValue ? _y.ToInt64Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapePropertiesExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapePropertiesExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapePropertiesExtensionListWrapper(
			DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ShapePropertiesExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ShapeStyle"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapeStyleWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ShapeStyle>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapeStyleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ShapeStyle"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapeStyleWrapper(
			DocumentFormat.OpenXml.Drawing.ShapeStyle wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeStyle"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineReferenceWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineReferenceWrapper LineReference { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.FillReferenceWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.FillReferenceWrapper FillReference { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EffectReferenceWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EffectReferenceWrapper EffectReference { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.FontReferenceWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.FontReferenceWrapper FontReference { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			LineReference = new ExtremeML.Drawing.LineReferenceWrapper(null, this, Package);
			FillReference = new ExtremeML.Drawing.FillReferenceWrapper(null, this, Package);
			EffectReference = new ExtremeML.Drawing.EffectReferenceWrapper(null, this, Package);
			FontReference = new ExtremeML.Drawing.FontReferenceWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			LineReference = new ExtremeML.Drawing.LineReferenceWrapper(Wrapped.LineReference, this, Package);
			FillReference = new ExtremeML.Drawing.FillReferenceWrapper(Wrapped.FillReference, this, Package);
			EffectReference = new ExtremeML.Drawing.EffectReferenceWrapper(Wrapped.EffectReference, this, Package);
			FontReference = new ExtremeML.Drawing.FontReferenceWrapper(Wrapped.FontReference, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ShapeStyle"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ShapeStyle Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ShapeStyle();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.LineReference = LineReference.Recompose();
				result.FillReference = FillReference.Recompose();
				result.EffectReference = EffectReference.Recompose();
				result.FontReference = FontReference.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LineReference;
			yield return FillReference;
			yield return EffectReference;
			yield return FontReference;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.FillReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FillReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.FillReference>
	{
		private string _localName;
		private Nullable<uint> _index;

		/// <summary>
		/// Initializes a new instance of the <see cref="FillReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.FillReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FillReferenceWrapper(
			DocumentFormat.OpenXml.Drawing.FillReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FillReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Index"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FillReference"/> instance.
		/// </summary>
		public Nullable<uint> Index
		{
			get { return _index; }
			set { OnIndexPropertyChanging(ref value, _index); SetModified(value, _index); _index = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_index = default(Nullable<uint>);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_index = Wrapped.Index == null ? null : Wrapped.Index.ToNullable();
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.FillReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.FillReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.FillReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Index = _index.HasValue ? _index.ToUInt32Value() : null;
				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.FontReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.FontReference>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.FontCollectionIndexValues> _index;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.FontReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontReferenceWrapper(
			DocumentFormat.OpenXml.Drawing.FontReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FontReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Index"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FontReference"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.FontCollectionIndexValues> Index
		{
			get { return _index; }
			set { OnIndexPropertyChanging(ref value, _index); SetModified(value, _index); _index = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		
		partial void OnIndexPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.FontCollectionIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.FontCollectionIndexValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_index = default(Nullable<DocumentFormat.OpenXml.Drawing.FontCollectionIndexValues>);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Index != null) _index = Wrapped.Index;
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.FontReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.FontReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.FontReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Index = _index;
				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LineReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LineReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LineReference>
	{
		private string _localName;
		private Nullable<uint> _index;

		/// <summary>
		/// Initializes a new instance of the <see cref="LineReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LineReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LineReferenceWrapper(
			DocumentFormat.OpenXml.Drawing.LineReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LineReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Index"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LineReference"/> instance.
		/// </summary>
		public Nullable<uint> Index
		{
			get { return _index; }
			set { OnIndexPropertyChanging(ref value, _index); SetModified(value, _index); _index = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_index = default(Nullable<uint>);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_index = Wrapped.Index == null ? null : Wrapped.Index.ToNullable();
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LineReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LineReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LineReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Index = _index.HasValue ? _index.ToUInt32Value() : null;
				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.EffectReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EffectReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.EffectReference>
	{
		private string _localName;
		private Nullable<uint> _index;

		/// <summary>
		/// Initializes a new instance of the <see cref="EffectReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.EffectReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EffectReferenceWrapper(
			DocumentFormat.OpenXml.Drawing.EffectReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EffectReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Index"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EffectReference"/> instance.
		/// </summary>
		public Nullable<uint> Index
		{
			get { return _index; }
			set { OnIndexPropertyChanging(ref value, _index); SetModified(value, _index); _index = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_index = default(Nullable<uint>);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_index = Wrapped.Index == null ? null : Wrapped.Index.ToNullable();
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.EffectReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.EffectReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.EffectReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Index = _index.HasValue ? _index.ToUInt32Value() : null;
				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LineDefault"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LineDefaultWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LineDefault>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="LineDefaultWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LineDefault"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LineDefaultWrapper(
			DocumentFormat.OpenXml.Drawing.LineDefault wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LineDefault"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapePropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapePropertiesWrapper ShapeProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BodyPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BodyPropertiesWrapper BodyProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ListStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ListStyleWrapper ListStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapeStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapeStyleWrapper ShapeStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(null, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(null, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(null, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(Wrapped.ShapeProperties, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(Wrapped.BodyProperties, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(Wrapped.ListStyle, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(Wrapped.ShapeStyle, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LineDefault"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LineDefault Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LineDefault();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShapeProperties = ShapeProperties.Recompose();
				result.BodyProperties = BodyProperties.Recompose();
				result.ListStyle = ListStyle.Recompose();
				result.ShapeStyle = ShapeStyle.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ShapeProperties;
			yield return BodyProperties;
			yield return ListStyle;
			yield return ShapeStyle;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ShapeDefault"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapeDefaultWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ShapeDefault>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapeDefaultWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ShapeDefault"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapeDefaultWrapper(
			DocumentFormat.OpenXml.Drawing.ShapeDefault wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ShapeDefault"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapePropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapePropertiesWrapper ShapeProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BodyPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BodyPropertiesWrapper BodyProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ListStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ListStyleWrapper ListStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ShapeStyleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ShapeStyleWrapper ShapeStyle { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(null, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(null, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(null, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ShapeProperties = new ExtremeML.Drawing.ShapePropertiesWrapper(Wrapped.ShapeProperties, this, Package);
			BodyProperties = new ExtremeML.Drawing.BodyPropertiesWrapper(Wrapped.BodyProperties, this, Package);
			ListStyle = new ExtremeML.Drawing.ListStyleWrapper(Wrapped.ListStyle, this, Package);
			ShapeStyle = new ExtremeML.Drawing.ShapeStyleWrapper(Wrapped.ShapeStyle, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ShapeDefault"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ShapeDefault Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ShapeDefault();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShapeProperties = ShapeProperties.Recompose();
				result.BodyProperties = BodyProperties.Recompose();
				result.ListStyle = ListStyle.Recompose();
				result.ShapeStyle = ShapeStyle.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ShapeProperties;
			yield return BodyProperties;
			yield return ListStyle;
			yield return ShapeStyle;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ThemeElements"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ThemeElementsWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ThemeElements>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ThemeElementsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ThemeElements"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ThemeElementsWrapper(
			DocumentFormat.OpenXml.Drawing.ThemeElements wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ThemeElements"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.FontSchemeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.FontSchemeWrapper FontScheme { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.FormatSchemeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.FormatSchemeWrapper FormatScheme { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			FontScheme = new ExtremeML.Drawing.FontSchemeWrapper(null, this, Package);
			FormatScheme = new ExtremeML.Drawing.FormatSchemeWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			FontScheme = new ExtremeML.Drawing.FontSchemeWrapper(Wrapped.FontScheme, this, Package);
			FormatScheme = new ExtremeML.Drawing.FormatSchemeWrapper(Wrapped.FormatScheme, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ThemeElements"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ThemeElements Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ThemeElements();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.FontScheme = FontScheme.Recompose();
				result.FormatScheme = FormatScheme.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return FontScheme;
			yield return FormatScheme;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.FontScheme"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontSchemeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.FontScheme>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="FontSchemeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.FontScheme"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontSchemeWrapper(
			DocumentFormat.OpenXml.Drawing.FontScheme wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FontScheme"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FontScheme"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.MajorFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.MajorFontWrapper MajorFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.MinorFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.MinorFontWrapper MinorFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			MajorFont = new ExtremeML.Drawing.MajorFontWrapper(null, this, Package);
			MinorFont = new ExtremeML.Drawing.MinorFontWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			MajorFont = new ExtremeML.Drawing.MajorFontWrapper(Wrapped.MajorFont, this, Package);
			MinorFont = new ExtremeML.Drawing.MinorFontWrapper(Wrapped.MinorFont, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.FontScheme"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.FontScheme Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.FontScheme();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.MajorFont = MajorFont.Recompose();
				result.MinorFont = MinorFont.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return MajorFont;
			yield return MinorFont;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.MajorFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MajorFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.MajorFont>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="MajorFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.MajorFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MajorFontWrapper(
			DocumentFormat.OpenXml.Drawing.MajorFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.MajorFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LatinFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LatinFontWrapper LatinFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EastAsianFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EastAsianFontWrapper EastAsianFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ComplexScriptFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ComplexScriptFontWrapper ComplexScriptFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SupplementalFontWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SupplementalFontWrapperCollection SupplementalFonts { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(null, this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(null, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
			SupplementalFonts = new ExtremeML.Drawing.SupplementalFontWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SupplementalFonts = new ExtremeML.Drawing.SupplementalFontWrapperCollection(Wrapped, this, Package);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(Wrapped.LatinFont, this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(Wrapped.EastAsianFont, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(Wrapped.ComplexScriptFont, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.MajorFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.MajorFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.MajorFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				SupplementalFonts.Recompose(result);
				result.LatinFont = LatinFont.Recompose();
				result.EastAsianFont = EastAsianFont.Recompose();
				result.ComplexScriptFont = ComplexScriptFont.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LatinFont;
			yield return EastAsianFont;
			yield return ComplexScriptFont;
			yield return ExtensionList;
			yield return SupplementalFonts;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SupplementalFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.SupplementalFont>
	{
		private string _localName;
		private string _script;
		private string _typeface;

		/// <summary>
		/// Initializes a new instance of the <see cref="SupplementalFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SupplementalFontWrapper(
			DocumentFormat.OpenXml.Drawing.SupplementalFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Script"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> instance.
		/// </summary>
		public string Script
		{
			get { return _script; }
			set { OnScriptPropertyChanging(ref value, _script); SetModified(value, _script); _script = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Typeface"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> instance.
		/// </summary>
		public string Typeface
		{
			get { return _typeface; }
			set { OnTypefacePropertyChanging(ref value, _typeface); SetModified(value, _typeface); _typeface = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnScriptPropertyChanging(ref string modified, string original);
		partial void OnTypefacePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_script = default(string);
			_typeface = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_script = Wrapped.Script == null ? null : Wrapped.Script.ToString();
			_typeface = Wrapped.Typeface == null ? null : Wrapped.Typeface.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.SupplementalFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.SupplementalFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.SupplementalFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Script = _script == null ? null : StringValue.FromString(_script);
				result.Typeface = _typeface == null ? null : StringValue.FromString(_typeface);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.MinorFont"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MinorFontWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.MinorFont>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="MinorFontWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.MinorFont"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MinorFontWrapper(
			DocumentFormat.OpenXml.Drawing.MinorFont wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.MinorFont"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LatinFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LatinFontWrapper LatinFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EastAsianFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EastAsianFontWrapper EastAsianFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ComplexScriptFontWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ComplexScriptFontWrapper ComplexScriptFont { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SupplementalFontWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SupplementalFontWrapperCollection SupplementalFonts { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(null, this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(null, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
			SupplementalFonts = new ExtremeML.Drawing.SupplementalFontWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SupplementalFonts = new ExtremeML.Drawing.SupplementalFontWrapperCollection(Wrapped, this, Package);
			LatinFont = new ExtremeML.Drawing.LatinFontWrapper(Wrapped.LatinFont, this, Package);
			EastAsianFont = new ExtremeML.Drawing.EastAsianFontWrapper(Wrapped.EastAsianFont, this, Package);
			ComplexScriptFont = new ExtremeML.Drawing.ComplexScriptFontWrapper(Wrapped.ComplexScriptFont, this, Package);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.MinorFont"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.MinorFont Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.MinorFont();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				SupplementalFonts.Recompose(result);
				result.LatinFont = LatinFont.Recompose();
				result.EastAsianFont = EastAsianFont.Recompose();
				result.ComplexScriptFont = ComplexScriptFont.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return LatinFont;
			yield return EastAsianFont;
			yield return ComplexScriptFont;
			yield return ExtensionList;
			yield return SupplementalFonts;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.FormatScheme"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FormatSchemeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.FormatScheme>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="FormatSchemeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.FormatScheme"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FormatSchemeWrapper(
			DocumentFormat.OpenXml.Drawing.FormatScheme wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FormatScheme"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FormatScheme"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.FillStyleListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.FillStyleListWrapper FillStyleList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.LineStyleListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.LineStyleListWrapper LineStyleList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EffectStyleListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EffectStyleListWrapper EffectStyleList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.BackgroundFillStyleListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.BackgroundFillStyleListWrapper BackgroundFillStyleList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			FillStyleList = new ExtremeML.Drawing.FillStyleListWrapper(null, this, Package);
			LineStyleList = new ExtremeML.Drawing.LineStyleListWrapper(null, this, Package);
			EffectStyleList = new ExtremeML.Drawing.EffectStyleListWrapper(null, this, Package);
			BackgroundFillStyleList = new ExtremeML.Drawing.BackgroundFillStyleListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			FillStyleList = new ExtremeML.Drawing.FillStyleListWrapper(Wrapped.FillStyleList, this, Package);
			LineStyleList = new ExtremeML.Drawing.LineStyleListWrapper(Wrapped.LineStyleList, this, Package);
			EffectStyleList = new ExtremeML.Drawing.EffectStyleListWrapper(Wrapped.EffectStyleList, this, Package);
			BackgroundFillStyleList = new ExtremeML.Drawing.BackgroundFillStyleListWrapper(Wrapped.BackgroundFillStyleList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.FormatScheme"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.FormatScheme Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.FormatScheme();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.FillStyleList = FillStyleList.Recompose();
				result.LineStyleList = LineStyleList.Recompose();
				result.EffectStyleList = EffectStyleList.Recompose();
				result.BackgroundFillStyleList = BackgroundFillStyleList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return FillStyleList;
			yield return LineStyleList;
			yield return EffectStyleList;
			yield return BackgroundFillStyleList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.LineStyleList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LineStyleListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.LineStyleList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="LineStyleListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.LineStyleList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LineStyleListWrapper(
			DocumentFormat.OpenXml.Drawing.LineStyleList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.LineStyleList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.OutlineWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.OutlineWrapperCollection Outlines { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Outlines = new ExtremeML.Drawing.OutlineWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Outlines = new ExtremeML.Drawing.OutlineWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.LineStyleList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.LineStyleList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.LineStyleList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Outlines.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Outlines;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BackgroundFillStyleListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="BackgroundFillStyleListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BackgroundFillStyleListWrapper(
			DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.BackgroundFillStyleList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.FillStyleList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FillStyleListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.FillStyleList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="FillStyleListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.FillStyleList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FillStyleListWrapper(
			DocumentFormat.OpenXml.Drawing.FillStyleList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.FillStyleList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.FillStyleList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.FillStyleList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.FillStyleList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.EffectStyleList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EffectStyleListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.EffectStyleList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="EffectStyleListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.EffectStyleList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EffectStyleListWrapper(
			DocumentFormat.OpenXml.Drawing.EffectStyleList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EffectStyleList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.EffectStyleWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.EffectStyleWrapperCollection EffectStyles { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			EffectStyles = new ExtremeML.Drawing.EffectStyleWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			EffectStyles = new ExtremeML.Drawing.EffectStyleWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.EffectStyleList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.EffectStyleList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.EffectStyleList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				EffectStyles.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return EffectStyles;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.EffectStyle"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EffectStyleWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.EffectStyle>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="EffectStyleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.EffectStyle"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EffectStyleWrapper(
			DocumentFormat.OpenXml.Drawing.EffectStyle wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.EffectStyle"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Shape3DTypeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Shape3DTypeWrapper Shape3DType { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Scene3DTypeWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Scene3DTypeWrapper Scene3DType { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Shape3DType = new ExtremeML.Drawing.Shape3DTypeWrapper(null, this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Shape3DType = new ExtremeML.Drawing.Shape3DTypeWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Shape3DType>(), this, Package);
			Scene3DType = new ExtremeML.Drawing.Scene3DTypeWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Drawing.Scene3DType>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.EffectStyle"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.EffectStyle Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.EffectStyle();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Shape3DType>();
				result.AppendChild(Shape3DType.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Scene3DType>();
				result.AppendChild(Scene3DType.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Shape3DType;
			yield return Scene3DType;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtraColorSchemeListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtraColorSchemeListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtraColorSchemeListWrapper(
			DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtraColorSchemeWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtraColorSchemeWrapperCollection ExtraColorSchemes { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ExtraColorSchemes = new ExtremeML.Drawing.ExtraColorSchemeWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ExtraColorSchemes = new ExtremeML.Drawing.ExtraColorSchemeWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ExtraColorSchemeList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ExtraColorSchemes.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtraColorSchemes;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorScheme"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtraColorSchemeWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ExtraColorScheme>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtraColorSchemeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorScheme"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtraColorSchemeWrapper(
			DocumentFormat.OpenXml.Drawing.ExtraColorScheme wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorScheme"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ColorMapWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ColorMapWrapper ColorMap { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ColorMap = new ExtremeML.Drawing.ColorMapWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ColorMap = new ExtremeML.Drawing.ColorMapWrapper(Wrapped.ColorMap, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ExtraColorScheme"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ExtraColorScheme Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ExtraColorScheme();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ColorMap = ColorMap.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ColorMap;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorMapWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.ColorMap>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _background1;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _text1;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _background2;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _text2;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent1;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent2;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent3;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent4;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent5;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _accent6;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _hyperlink;
		private Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> _followedHyperlink;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorMapWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorMapWrapper(
			DocumentFormat.OpenXml.Drawing.ColorMap wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Background1"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Background1
		{
			get { return _background1; }
			set { OnBackground1PropertyChanging(ref value, _background1); SetModified(value, _background1); _background1 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Text1"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Text1
		{
			get { return _text1; }
			set { OnText1PropertyChanging(ref value, _text1); SetModified(value, _text1); _text1 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Background2"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Background2
		{
			get { return _background2; }
			set { OnBackground2PropertyChanging(ref value, _background2); SetModified(value, _background2); _background2 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Text2"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Text2
		{
			get { return _text2; }
			set { OnText2PropertyChanging(ref value, _text2); SetModified(value, _text2); _text2 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent1"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent1
		{
			get { return _accent1; }
			set { OnAccent1PropertyChanging(ref value, _accent1); SetModified(value, _accent1); _accent1 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent2"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent2
		{
			get { return _accent2; }
			set { OnAccent2PropertyChanging(ref value, _accent2); SetModified(value, _accent2); _accent2 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent3"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent3
		{
			get { return _accent3; }
			set { OnAccent3PropertyChanging(ref value, _accent3); SetModified(value, _accent3); _accent3 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent4"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent4
		{
			get { return _accent4; }
			set { OnAccent4PropertyChanging(ref value, _accent4); SetModified(value, _accent4); _accent4 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent5"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent5
		{
			get { return _accent5; }
			set { OnAccent5PropertyChanging(ref value, _accent5); SetModified(value, _accent5); _accent5 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Accent6"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Accent6
		{
			get { return _accent6; }
			set { OnAccent6PropertyChanging(ref value, _accent6); SetModified(value, _accent6); _accent6 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hyperlink"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> Hyperlink
		{
			get { return _hyperlink; }
			set { OnHyperlinkPropertyChanging(ref value, _hyperlink); SetModified(value, _hyperlink); _hyperlink = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FollowedHyperlink"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> FollowedHyperlink
		{
			get { return _followedHyperlink; }
			set { OnFollowedHyperlinkPropertyChanging(ref value, _followedHyperlink); SetModified(value, _followedHyperlink); _followedHyperlink = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.ExtensionListWrapper ExtensionList { get; private set; }
		
		partial void OnBackground1PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnText1PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnBackground2PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnText2PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent1PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent2PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent3PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent4PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent5PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnAccent6PropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnHyperlinkPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);
		partial void OnFollowedHyperlinkPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> modified, Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_background1 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_text1 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_background2 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_text2 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent1 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent2 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent3 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent4 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent5 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_accent6 = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_hyperlink = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			_followedHyperlink = default(Nullable<DocumentFormat.OpenXml.Drawing.ColorSchemeIndexValues>);
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Background1 != null) _background1 = Wrapped.Background1;
			if (Wrapped.Text1 != null) _text1 = Wrapped.Text1;
			if (Wrapped.Background2 != null) _background2 = Wrapped.Background2;
			if (Wrapped.Text2 != null) _text2 = Wrapped.Text2;
			if (Wrapped.Accent1 != null) _accent1 = Wrapped.Accent1;
			if (Wrapped.Accent2 != null) _accent2 = Wrapped.Accent2;
			if (Wrapped.Accent3 != null) _accent3 = Wrapped.Accent3;
			if (Wrapped.Accent4 != null) _accent4 = Wrapped.Accent4;
			if (Wrapped.Accent5 != null) _accent5 = Wrapped.Accent5;
			if (Wrapped.Accent6 != null) _accent6 = Wrapped.Accent6;
			if (Wrapped.Hyperlink != null) _hyperlink = Wrapped.Hyperlink;
			if (Wrapped.FollowedHyperlink != null) _followedHyperlink = Wrapped.FollowedHyperlink;
			ExtensionList = new ExtremeML.Drawing.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.ColorMap"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.ColorMap Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.ColorMap();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Background1 = _background1;
				result.Text1 = _text1;
				result.Background2 = _background2;
				result.Text2 = _text2;
				result.Accent1 = _accent1;
				result.Accent2 = _accent2;
				result.Accent3 = _accent3;
				result.Accent4 = _accent4;
				result.Accent5 = _accent5;
				result.Accent6 = _accent6;
				result.Hyperlink = _hyperlink;
				result.FollowedHyperlink = _followedHyperlink;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.CustomColorList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomColorListWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.CustomColorList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomColorListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.CustomColorList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomColorListWrapper(
			DocumentFormat.OpenXml.Drawing.CustomColorList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.CustomColorList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.CustomColorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Drawing.CustomColorWrapperCollection CustomColors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CustomColors = new ExtremeML.Drawing.CustomColorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CustomColors = new ExtremeML.Drawing.CustomColorWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.CustomColorList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.CustomColorList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.CustomColorList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CustomColors.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CustomColors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.CustomColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.CustomColor>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.CustomColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomColorWrapper(
			DocumentFormat.OpenXml.Drawing.CustomColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.CustomColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.CustomColor"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelPercentageWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelPercentageWrapper RgbColorModelPercentage { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.RgbColorModelHexWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.RgbColorModelHexWrapper RgbColorModelHex { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.HslColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.HslColorWrapper HslColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SystemColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SystemColorWrapper SystemColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.SchemeColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.SchemeColorWrapper SchemeColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.PresetColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.PresetColorWrapper PresetColor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(null, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(null, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(null, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(null, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(null, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			RgbColorModelPercentage = new ExtremeML.Drawing.RgbColorModelPercentageWrapper(Wrapped.RgbColorModelPercentage, this, Package);
			RgbColorModelHex = new ExtremeML.Drawing.RgbColorModelHexWrapper(Wrapped.RgbColorModelHex, this, Package);
			HslColor = new ExtremeML.Drawing.HslColorWrapper(Wrapped.HslColor, this, Package);
			SystemColor = new ExtremeML.Drawing.SystemColorWrapper(Wrapped.SystemColor, this, Package);
			SchemeColor = new ExtremeML.Drawing.SchemeColorWrapper(Wrapped.SchemeColor, this, Package);
			PresetColor = new ExtremeML.Drawing.PresetColorWrapper(Wrapped.PresetColor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.CustomColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.CustomColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.CustomColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.RgbColorModelPercentage = RgbColorModelPercentage.Recompose();
				result.RgbColorModelHex = RgbColorModelHex.Recompose();
				result.HslColor = HslColor.Recompose();
				result.SystemColor = SystemColor.Recompose();
				result.SchemeColor = SchemeColor.Recompose();
				result.PresetColor = PresetColor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return RgbColorModelPercentage;
			yield return RgbColorModelHex;
			yield return HslColor;
			yield return SystemColor;
			yield return SchemeColor;
			yield return PresetColor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Worksheet"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorksheetWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Worksheet>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorksheetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Worksheet"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorksheetWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Worksheet wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Worksheet"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetPropertiesWrapper SheetProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetDimensionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetDimensionWrapper SheetDimension { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetViewsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetViewsWrapper SheetViews { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetFormatPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetFormatPropertiesWrapper SheetFormatProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PrintOptionsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PrintOptionsWrapper PrintOptions { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WorksheetExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WorksheetExtensionListWrapper WorksheetExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetDataWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetDataWrapper SheetData { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetCalculationPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetCalculationPropertiesWrapper SheetCalculationProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetProtectionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetProtectionWrapper SheetProtection { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ProtectedRangesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ProtectedRangesWrapper ProtectedRanges { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ScenariosWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ScenariosWrapper Scenarios { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AutoFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AutoFilterWrapper AutoFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SortStateWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SortStateWrapper SortState { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DataConsolidateWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DataConsolidateWrapper DataConsolidate { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomSheetViewsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomSheetViewsWrapper CustomSheetViews { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.MergeCellsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.MergeCellsWrapper MergeCells { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticPropertiesWrapper PhoneticProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DataValidationsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DataValidationsWrapper DataValidations { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.HyperlinksWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.HyperlinksWrapper Hyperlinks { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PageMarginsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PageMarginsWrapper PageMargins { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PageSetupWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PageSetupWrapper PageSetup { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.HeaderFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.HeaderFooterWrapper HeaderFooter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RowBreaksWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RowBreaksWrapper RowBreaks { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColumnBreaksWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColumnBreaksWrapper ColumnBreaks { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomPropertiesWrapper CustomProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellWatchesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellWatchesWrapper CellWatches { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.IgnoredErrorsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.IgnoredErrorsWrapper IgnoredErrors { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SmartTagsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SmartTagsWrapper SmartTags { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DrawingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DrawingWrapper Drawing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.LegacyDrawingWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.LegacyDrawingWrapper LegacyDrawing { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.LegacyDrawingHeaderFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.LegacyDrawingHeaderFooterWrapper LegacyDrawingHeaderFooter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PictureWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PictureWrapper Picture { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OleObjectsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OleObjectsWrapper OleObjects { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ControlsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ControlsWrapper Controls { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WebPublishItemsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WebPublishItemsWrapper WebPublishItems { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TablePartsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TablePartsWrapper TableParts { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormattingWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormattingWrapperCollection ConditionalFormattings { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColumnsWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColumnsWrapperCollection ColumnSets { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			SheetProperties = new ExtremeML.Spreadsheet.SheetPropertiesWrapper(null, this, Package);
			SheetDimension = new ExtremeML.Spreadsheet.SheetDimensionWrapper(null, this, Package);
			SheetViews = new ExtremeML.Spreadsheet.SheetViewsWrapper(null, this, Package);
			SheetFormatProperties = new ExtremeML.Spreadsheet.SheetFormatPropertiesWrapper(null, this, Package);
			PrintOptions = new ExtremeML.Spreadsheet.PrintOptionsWrapper(null, this, Package);
			WorksheetExtensionList = new ExtremeML.Spreadsheet.WorksheetExtensionListWrapper(null, this, Package);
			SheetData = new ExtremeML.Spreadsheet.SheetDataWrapper(null, this, Package);
			SheetCalculationProperties = new ExtremeML.Spreadsheet.SheetCalculationPropertiesWrapper(null, this, Package);
			SheetProtection = new ExtremeML.Spreadsheet.SheetProtectionWrapper(null, this, Package);
			ProtectedRanges = new ExtremeML.Spreadsheet.ProtectedRangesWrapper(null, this, Package);
			Scenarios = new ExtremeML.Spreadsheet.ScenariosWrapper(null, this, Package);
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(null, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(null, this, Package);
			DataConsolidate = new ExtremeML.Spreadsheet.DataConsolidateWrapper(null, this, Package);
			CustomSheetViews = new ExtremeML.Spreadsheet.CustomSheetViewsWrapper(null, this, Package);
			MergeCells = new ExtremeML.Spreadsheet.MergeCellsWrapper(null, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(null, this, Package);
			DataValidations = new ExtremeML.Spreadsheet.DataValidationsWrapper(null, this, Package);
			Hyperlinks = new ExtremeML.Spreadsheet.HyperlinksWrapper(null, this, Package);
			PageMargins = new ExtremeML.Spreadsheet.PageMarginsWrapper(null, this, Package);
			PageSetup = new ExtremeML.Spreadsheet.PageSetupWrapper(null, this, Package);
			HeaderFooter = new ExtremeML.Spreadsheet.HeaderFooterWrapper(null, this, Package);
			RowBreaks = new ExtremeML.Spreadsheet.RowBreaksWrapper(null, this, Package);
			ColumnBreaks = new ExtremeML.Spreadsheet.ColumnBreaksWrapper(null, this, Package);
			CustomProperties = new ExtremeML.Spreadsheet.CustomPropertiesWrapper(null, this, Package);
			CellWatches = new ExtremeML.Spreadsheet.CellWatchesWrapper(null, this, Package);
			IgnoredErrors = new ExtremeML.Spreadsheet.IgnoredErrorsWrapper(null, this, Package);
			SmartTags = new ExtremeML.Spreadsheet.SmartTagsWrapper(null, this, Package);
			Drawing = new ExtremeML.Spreadsheet.DrawingWrapper(null, this, Package);
			LegacyDrawing = new ExtremeML.Spreadsheet.LegacyDrawingWrapper(null, this, Package);
			LegacyDrawingHeaderFooter = new ExtremeML.Spreadsheet.LegacyDrawingHeaderFooterWrapper(null, this, Package);
			Picture = new ExtremeML.Spreadsheet.PictureWrapper(null, this, Package);
			OleObjects = new ExtremeML.Spreadsheet.OleObjectsWrapper(null, this, Package);
			Controls = new ExtremeML.Spreadsheet.ControlsWrapper(null, this, Package);
			WebPublishItems = new ExtremeML.Spreadsheet.WebPublishItemsWrapper(null, this, Package);
			TableParts = new ExtremeML.Spreadsheet.TablePartsWrapper(null, this, Package);
			ConditionalFormattings = new ExtremeML.Spreadsheet.ConditionalFormattingWrapperCollection(null, this, Package);
			ColumnSets = new ExtremeML.Spreadsheet.ColumnsWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ConditionalFormattings = new ExtremeML.Spreadsheet.ConditionalFormattingWrapperCollection(Wrapped, this, Package);
			ColumnSets = new ExtremeML.Spreadsheet.ColumnsWrapperCollection(Wrapped, this, Package);
			SheetProperties = new ExtremeML.Spreadsheet.SheetPropertiesWrapper(Wrapped.SheetProperties, this, Package);
			SheetDimension = new ExtremeML.Spreadsheet.SheetDimensionWrapper(Wrapped.SheetDimension, this, Package);
			SheetViews = new ExtremeML.Spreadsheet.SheetViewsWrapper(Wrapped.SheetViews, this, Package);
			SheetFormatProperties = new ExtremeML.Spreadsheet.SheetFormatPropertiesWrapper(Wrapped.SheetFormatProperties, this, Package);
			PrintOptions = new ExtremeML.Spreadsheet.PrintOptionsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PrintOptions>(), this, Package);
			WorksheetExtensionList = new ExtremeML.Spreadsheet.WorksheetExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList>(), this, Package);
			SheetData = new ExtremeML.Spreadsheet.SheetDataWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SheetData>(), this, Package);
			SheetCalculationProperties = new ExtremeML.Spreadsheet.SheetCalculationPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties>(), this, Package);
			SheetProtection = new ExtremeML.Spreadsheet.SheetProtectionWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SheetProtection>(), this, Package);
			ProtectedRanges = new ExtremeML.Spreadsheet.ProtectedRangesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges>(), this, Package);
			Scenarios = new ExtremeML.Spreadsheet.ScenariosWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Scenarios>(), this, Package);
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.AutoFilter>(), this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SortState>(), this, Package);
			DataConsolidate = new ExtremeML.Spreadsheet.DataConsolidateWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.DataConsolidate>(), this, Package);
			CustomSheetViews = new ExtremeML.Spreadsheet.CustomSheetViewsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews>(), this, Package);
			MergeCells = new ExtremeML.Spreadsheet.MergeCellsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.MergeCells>(), this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>(), this, Package);
			DataValidations = new ExtremeML.Spreadsheet.DataValidationsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.DataValidations>(), this, Package);
			Hyperlinks = new ExtremeML.Spreadsheet.HyperlinksWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Hyperlinks>(), this, Package);
			PageMargins = new ExtremeML.Spreadsheet.PageMarginsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PageMargins>(), this, Package);
			PageSetup = new ExtremeML.Spreadsheet.PageSetupWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PageSetup>(), this, Package);
			HeaderFooter = new ExtremeML.Spreadsheet.HeaderFooterWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.HeaderFooter>(), this, Package);
			RowBreaks = new ExtremeML.Spreadsheet.RowBreaksWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.RowBreaks>(), this, Package);
			ColumnBreaks = new ExtremeML.Spreadsheet.ColumnBreaksWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks>(), this, Package);
			CustomProperties = new ExtremeML.Spreadsheet.CustomPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.CustomProperties>(), this, Package);
			CellWatches = new ExtremeML.Spreadsheet.CellWatchesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.CellWatches>(), this, Package);
			IgnoredErrors = new ExtremeML.Spreadsheet.IgnoredErrorsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors>(), this, Package);
			SmartTags = new ExtremeML.Spreadsheet.SmartTagsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SmartTags>(), this, Package);
			Drawing = new ExtremeML.Spreadsheet.DrawingWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Drawing>(), this, Package);
			LegacyDrawing = new ExtremeML.Spreadsheet.LegacyDrawingWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing>(), this, Package);
			LegacyDrawingHeaderFooter = new ExtremeML.Spreadsheet.LegacyDrawingHeaderFooterWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter>(), this, Package);
			Picture = new ExtremeML.Spreadsheet.PictureWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Picture>(), this, Package);
			OleObjects = new ExtremeML.Spreadsheet.OleObjectsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.OleObjects>(), this, Package);
			Controls = new ExtremeML.Spreadsheet.ControlsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Controls>(), this, Package);
			WebPublishItems = new ExtremeML.Spreadsheet.WebPublishItemsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.WebPublishItems>(), this, Package);
			TableParts = new ExtremeML.Spreadsheet.TablePartsWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.TableParts>(), this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Worksheet"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.Worksheet wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ConditionalFormattings.Recompose(result);
				ColumnSets.Recompose(result);
				result.SheetProperties = SheetProperties.Recompose();
				result.SheetDimension = SheetDimension.Recompose();
				result.SheetViews = SheetViews.Recompose();
				result.SheetFormatProperties = SheetFormatProperties.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PrintOptions>();
				result.AppendChild(PrintOptions.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList>();
				result.AppendChild(WorksheetExtensionList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SheetData>();
				result.AppendChild(SheetData.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties>();
				result.AppendChild(SheetCalculationProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SheetProtection>();
				result.AppendChild(SheetProtection.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges>();
				result.AppendChild(ProtectedRanges.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Scenarios>();
				result.AppendChild(Scenarios.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.AutoFilter>();
				result.AppendChild(AutoFilter.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SortState>();
				result.AppendChild(SortState.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DataConsolidate>();
				result.AppendChild(DataConsolidate.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews>();
				result.AppendChild(CustomSheetViews.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.MergeCells>();
				result.AppendChild(MergeCells.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>();
				result.AppendChild(PhoneticProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DataValidations>();
				result.AppendChild(DataValidations.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Hyperlinks>();
				result.AppendChild(Hyperlinks.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PageMargins>();
				result.AppendChild(PageMargins.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PageSetup>();
				result.AppendChild(PageSetup.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.HeaderFooter>();
				result.AppendChild(HeaderFooter.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.RowBreaks>();
				result.AppendChild(RowBreaks.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks>();
				result.AppendChild(ColumnBreaks.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomProperties>();
				result.AppendChild(CustomProperties.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellWatches>();
				result.AppendChild(CellWatches.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors>();
				result.AppendChild(IgnoredErrors.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SmartTags>();
				result.AppendChild(SmartTags.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Drawing>();
				result.AppendChild(Drawing.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing>();
				result.AppendChild(LegacyDrawing.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter>();
				result.AppendChild(LegacyDrawingHeaderFooter.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Picture>();
				result.AppendChild(Picture.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.OleObjects>();
				result.AppendChild(OleObjects.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Controls>();
				result.AppendChild(Controls.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WebPublishItems>();
				result.AppendChild(WebPublishItems.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.TableParts>();
				result.AppendChild(TableParts.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return SheetProperties;
			yield return SheetDimension;
			yield return SheetViews;
			yield return SheetFormatProperties;
			yield return PrintOptions;
			yield return WorksheetExtensionList;
			yield return SheetData;
			yield return SheetCalculationProperties;
			yield return SheetProtection;
			yield return ProtectedRanges;
			yield return Scenarios;
			yield return AutoFilter;
			yield return SortState;
			yield return DataConsolidate;
			yield return CustomSheetViews;
			yield return MergeCells;
			yield return PhoneticProperties;
			yield return DataValidations;
			yield return Hyperlinks;
			yield return PageMargins;
			yield return PageSetup;
			yield return HeaderFooter;
			yield return RowBreaks;
			yield return ColumnBreaks;
			yield return CustomProperties;
			yield return CellWatches;
			yield return IgnoredErrors;
			yield return SmartTags;
			yield return Drawing;
			yield return LegacyDrawing;
			yield return LegacyDrawingHeaderFooter;
			yield return Picture;
			yield return OleObjects;
			yield return Controls;
			yield return WebPublishItems;
			yield return TableParts;
			yield return ConditionalFormattings;
			yield return ColumnSets;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PrintOptionsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PrintOptions>
	{
		private string _localName;
		private Nullable<bool> _horizontalCentered;
		private Nullable<bool> _verticalCentered;
		private Nullable<bool> _headings;
		private Nullable<bool> _gridLines;
		private Nullable<bool> _gridLinesSet;

		/// <summary>
		/// Initializes a new instance of the <see cref="PrintOptionsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PrintOptionsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PrintOptions wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HorizontalCentered"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public Nullable<bool> HorizontalCentered
		{
			get { return _horizontalCentered; }
			set { OnHorizontalCenteredPropertyChanging(ref value, _horizontalCentered); SetModified(value, _horizontalCentered); _horizontalCentered = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VerticalCentered"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public Nullable<bool> VerticalCentered
		{
			get { return _verticalCentered; }
			set { OnVerticalCenteredPropertyChanging(ref value, _verticalCentered); SetModified(value, _verticalCentered); _verticalCentered = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Headings"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public Nullable<bool> Headings
		{
			get { return _headings; }
			set { OnHeadingsPropertyChanging(ref value, _headings); SetModified(value, _headings); _headings = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GridLines"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public Nullable<bool> GridLines
		{
			get { return _gridLines; }
			set { OnGridLinesPropertyChanging(ref value, _gridLines); SetModified(value, _gridLines); _gridLines = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GridLinesSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.
		/// </summary>
		public Nullable<bool> GridLinesSet
		{
			get { return _gridLinesSet; }
			set { OnGridLinesSetPropertyChanging(ref value, _gridLinesSet); SetModified(value, _gridLinesSet); _gridLinesSet = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnHorizontalCenteredPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnVerticalCenteredPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeadingsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnGridLinesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnGridLinesSetPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_horizontalCentered = default(Nullable<bool>);
			_verticalCentered = default(Nullable<bool>);
			_headings = default(Nullable<bool>);
			_gridLines = default(Nullable<bool>);
			_gridLinesSet = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_horizontalCentered = Wrapped.HorizontalCentered == null ? null : Wrapped.HorizontalCentered.ToNullable();
			_verticalCentered = Wrapped.VerticalCentered == null ? null : Wrapped.VerticalCentered.ToNullable();
			_headings = Wrapped.Headings == null ? null : Wrapped.Headings.ToNullable();
			_gridLines = Wrapped.GridLines == null ? null : Wrapped.GridLines.ToNullable();
			_gridLinesSet = Wrapped.GridLinesSet == null ? null : Wrapped.GridLinesSet.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PrintOptions"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PrintOptions Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PrintOptions();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.HorizontalCentered = _horizontalCentered.HasValue ? _horizontalCentered.ToBooleanValue() : null;
				result.VerticalCentered = _verticalCentered.HasValue ? _verticalCentered.ToBooleanValue() : null;
				result.Headings = _headings.HasValue ? _headings.ToBooleanValue() : null;
				result.GridLines = _gridLines.HasValue ? _gridLines.ToBooleanValue() : null;
				result.GridLinesSet = _gridLinesSet.HasValue ? _gridLinesSet.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorksheetExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="WorksheetExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorksheetExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WorksheetExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetDimension"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetDimensionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetDimension>
	{
		private string _localName;
		private string _reference;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetDimensionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetDimension"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetDimensionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetDimension wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetDimension"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetDimension"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetDimension"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetDimension Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetDimension();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetViews"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetViewsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetViews>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetViewsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetViews"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetViewsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetViews wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetViews"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SheetViewWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SheetViewWrapperCollection SheetViews { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			SheetViews = new ExtremeML.Spreadsheet.SheetViewWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			SheetViews = new ExtremeML.Spreadsheet.SheetViewWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetViews"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetViews Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetViews();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				SheetViews.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return SheetViews;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetViewWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetView>
	{
		private string _localName;
		private Nullable<bool> _windowProtection;
		private Nullable<bool> _showFormulas;
		private Nullable<bool> _showGridLines;
		private Nullable<bool> _showRowColHeaders;
		private Nullable<bool> _showZeros;
		private Nullable<bool> _rightToLeft;
		private Nullable<bool> _tabSelected;
		private Nullable<bool> _showRuler;
		private Nullable<bool> _showOutlineSymbols;
		private Nullable<bool> _defaultGridColor;
		private Nullable<bool> _showWhiteSpace;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> _view;
		private string _topLeftCell;
		private Nullable<uint> _colorId;
		private Nullable<uint> _zoomScale;
		private Nullable<uint> _zoomScaleNormal;
		private Nullable<uint> _zoomScaleSheetLayoutView;
		private Nullable<uint> _zoomScalePageLayoutView;
		private Nullable<uint> _workbookViewId;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetViewWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetViewWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetView wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WindowProtection"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> WindowProtection
		{
			get { return _windowProtection; }
			set { OnWindowProtectionPropertyChanging(ref value, _windowProtection); SetModified(value, _windowProtection); _windowProtection = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowFormulas"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowFormulas
		{
			get { return _showFormulas; }
			set { OnShowFormulasPropertyChanging(ref value, _showFormulas); SetModified(value, _showFormulas); _showFormulas = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowGridLines"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowGridLines
		{
			get { return _showGridLines; }
			set { OnShowGridLinesPropertyChanging(ref value, _showGridLines); SetModified(value, _showGridLines); _showGridLines = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowRowColHeaders"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowRowColHeaders
		{
			get { return _showRowColHeaders; }
			set { OnShowRowColHeadersPropertyChanging(ref value, _showRowColHeaders); SetModified(value, _showRowColHeaders); _showRowColHeaders = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowZeros"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowZeros
		{
			get { return _showZeros; }
			set { OnShowZerosPropertyChanging(ref value, _showZeros); SetModified(value, _showZeros); _showZeros = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RightToLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> RightToLeft
		{
			get { return _rightToLeft; }
			set { OnRightToLeftPropertyChanging(ref value, _rightToLeft); SetModified(value, _rightToLeft); _rightToLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TabSelected"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> TabSelected
		{
			get { return _tabSelected; }
			set { OnTabSelectedPropertyChanging(ref value, _tabSelected); SetModified(value, _tabSelected); _tabSelected = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowRuler"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowRuler
		{
			get { return _showRuler; }
			set { OnShowRulerPropertyChanging(ref value, _showRuler); SetModified(value, _showRuler); _showRuler = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowOutlineSymbols"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowOutlineSymbols
		{
			get { return _showOutlineSymbols; }
			set { OnShowOutlineSymbolsPropertyChanging(ref value, _showOutlineSymbols); SetModified(value, _showOutlineSymbols); _showOutlineSymbols = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultGridColor"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> DefaultGridColor
		{
			get { return _defaultGridColor; }
			set { OnDefaultGridColorPropertyChanging(ref value, _defaultGridColor); SetModified(value, _defaultGridColor); _defaultGridColor = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowWhiteSpace"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowWhiteSpace
		{
			get { return _showWhiteSpace; }
			set { OnShowWhiteSpacePropertyChanging(ref value, _showWhiteSpace); SetModified(value, _showWhiteSpace); _showWhiteSpace = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="View"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> View
		{
			get { return _view; }
			set { OnViewPropertyChanging(ref value, _view); SetModified(value, _view); _view = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TopLeftCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public string TopLeftCell
		{
			get { return _topLeftCell; }
			set { OnTopLeftCellPropertyChanging(ref value, _topLeftCell); SetModified(value, _topLeftCell); _topLeftCell = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColorId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> ColorId
		{
			get { return _colorId; }
			set { OnColorIdPropertyChanging(ref value, _colorId); SetModified(value, _colorId); _colorId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZoomScale"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> ZoomScale
		{
			get { return _zoomScale; }
			set { OnZoomScalePropertyChanging(ref value, _zoomScale); SetModified(value, _zoomScale); _zoomScale = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZoomScaleNormal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> ZoomScaleNormal
		{
			get { return _zoomScaleNormal; }
			set { OnZoomScaleNormalPropertyChanging(ref value, _zoomScaleNormal); SetModified(value, _zoomScaleNormal); _zoomScaleNormal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZoomScaleSheetLayoutView"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> ZoomScaleSheetLayoutView
		{
			get { return _zoomScaleSheetLayoutView; }
			set { OnZoomScaleSheetLayoutViewPropertyChanging(ref value, _zoomScaleSheetLayoutView); SetModified(value, _zoomScaleSheetLayoutView); _zoomScaleSheetLayoutView = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZoomScalePageLayoutView"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> ZoomScalePageLayoutView
		{
			get { return _zoomScalePageLayoutView; }
			set { OnZoomScalePageLayoutViewPropertyChanging(ref value, _zoomScalePageLayoutView); SetModified(value, _zoomScalePageLayoutView); _zoomScalePageLayoutView = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="WorkbookViewId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.
		/// </summary>
		public Nullable<uint> WorkbookViewId
		{
			get { return _workbookViewId; }
			set { OnWorkbookViewIdPropertyChanging(ref value, _workbookViewId); SetModified(value, _workbookViewId); _workbookViewId = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PaneWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PaneWrapper Pane { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SelectionWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SelectionWrapperCollection Selections { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotSelectionWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotSelectionWrapperCollection PivotSelections { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnWindowProtectionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowFormulasPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowGridLinesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowRowColHeadersPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowZerosPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRightToLeftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTabSelectedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowRulerPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowOutlineSymbolsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultGridColorPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowWhiteSpacePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnViewPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> original);
		partial void OnTopLeftCellPropertyChanging(ref string modified, string original);
		partial void OnColorIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnZoomScalePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnZoomScaleNormalPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnZoomScaleSheetLayoutViewPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnZoomScalePageLayoutViewPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWorkbookViewIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_windowProtection = default(Nullable<bool>);
			_showFormulas = default(Nullable<bool>);
			_showGridLines = default(Nullable<bool>);
			_showRowColHeaders = default(Nullable<bool>);
			_showZeros = default(Nullable<bool>);
			_rightToLeft = default(Nullable<bool>);
			_tabSelected = default(Nullable<bool>);
			_showRuler = default(Nullable<bool>);
			_showOutlineSymbols = default(Nullable<bool>);
			_defaultGridColor = default(Nullable<bool>);
			_showWhiteSpace = default(Nullable<bool>);
			_view = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues>);
			_topLeftCell = default(string);
			_colorId = default(Nullable<uint>);
			_zoomScale = default(Nullable<uint>);
			_zoomScaleNormal = default(Nullable<uint>);
			_zoomScaleSheetLayoutView = default(Nullable<uint>);
			_zoomScalePageLayoutView = default(Nullable<uint>);
			_workbookViewId = default(Nullable<uint>);
			Pane = new ExtremeML.Spreadsheet.PaneWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			Selections = new ExtremeML.Spreadsheet.SelectionWrapperCollection(null, this, Package);
			PivotSelections = new ExtremeML.Spreadsheet.PivotSelectionWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_windowProtection = Wrapped.WindowProtection == null ? null : Wrapped.WindowProtection.ToNullable();
			_showFormulas = Wrapped.ShowFormulas == null ? null : Wrapped.ShowFormulas.ToNullable();
			_showGridLines = Wrapped.ShowGridLines == null ? null : Wrapped.ShowGridLines.ToNullable();
			_showRowColHeaders = Wrapped.ShowRowColHeaders == null ? null : Wrapped.ShowRowColHeaders.ToNullable();
			_showZeros = Wrapped.ShowZeros == null ? null : Wrapped.ShowZeros.ToNullable();
			_rightToLeft = Wrapped.RightToLeft == null ? null : Wrapped.RightToLeft.ToNullable();
			_tabSelected = Wrapped.TabSelected == null ? null : Wrapped.TabSelected.ToNullable();
			_showRuler = Wrapped.ShowRuler == null ? null : Wrapped.ShowRuler.ToNullable();
			_showOutlineSymbols = Wrapped.ShowOutlineSymbols == null ? null : Wrapped.ShowOutlineSymbols.ToNullable();
			_defaultGridColor = Wrapped.DefaultGridColor == null ? null : Wrapped.DefaultGridColor.ToNullable();
			_showWhiteSpace = Wrapped.ShowWhiteSpace == null ? null : Wrapped.ShowWhiteSpace.ToNullable();
			_topLeftCell = Wrapped.TopLeftCell == null ? null : Wrapped.TopLeftCell.ToString();
			_colorId = Wrapped.ColorId == null ? null : Wrapped.ColorId.ToNullable();
			_zoomScale = Wrapped.ZoomScale == null ? null : Wrapped.ZoomScale.ToNullable();
			_zoomScaleNormal = Wrapped.ZoomScaleNormal == null ? null : Wrapped.ZoomScaleNormal.ToNullable();
			_zoomScaleSheetLayoutView = Wrapped.ZoomScaleSheetLayoutView == null ? null : Wrapped.ZoomScaleSheetLayoutView.ToNullable();
			_zoomScalePageLayoutView = Wrapped.ZoomScalePageLayoutView == null ? null : Wrapped.ZoomScalePageLayoutView.ToNullable();
			_workbookViewId = Wrapped.WorkbookViewId == null ? null : Wrapped.WorkbookViewId.ToNullable();
			if (Wrapped.View != null) _view = Wrapped.View;
			Selections = new ExtremeML.Spreadsheet.SelectionWrapperCollection(Wrapped, this, Package);
			PivotSelections = new ExtremeML.Spreadsheet.PivotSelectionWrapperCollection(Wrapped, this, Package);
			Pane = new ExtremeML.Spreadsheet.PaneWrapper(Wrapped.Pane, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetView"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetView Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetView();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.View = _view;
				result.WindowProtection = _windowProtection.HasValue ? _windowProtection.ToBooleanValue() : null;
				result.ShowFormulas = _showFormulas.HasValue ? _showFormulas.ToBooleanValue() : null;
				result.ShowGridLines = _showGridLines.HasValue ? _showGridLines.ToBooleanValue() : null;
				result.ShowRowColHeaders = _showRowColHeaders.HasValue ? _showRowColHeaders.ToBooleanValue() : null;
				result.ShowZeros = _showZeros.HasValue ? _showZeros.ToBooleanValue() : null;
				result.RightToLeft = _rightToLeft.HasValue ? _rightToLeft.ToBooleanValue() : null;
				result.TabSelected = _tabSelected.HasValue ? _tabSelected.ToBooleanValue() : null;
				result.ShowRuler = _showRuler.HasValue ? _showRuler.ToBooleanValue() : null;
				result.ShowOutlineSymbols = _showOutlineSymbols.HasValue ? _showOutlineSymbols.ToBooleanValue() : null;
				result.DefaultGridColor = _defaultGridColor.HasValue ? _defaultGridColor.ToBooleanValue() : null;
				result.ShowWhiteSpace = _showWhiteSpace.HasValue ? _showWhiteSpace.ToBooleanValue() : null;
				result.TopLeftCell = _topLeftCell == null ? null : StringValue.FromString(_topLeftCell);
				result.ColorId = _colorId.HasValue ? _colorId.ToUInt32Value() : null;
				result.ZoomScale = _zoomScale.HasValue ? _zoomScale.ToUInt32Value() : null;
				result.ZoomScaleNormal = _zoomScaleNormal.HasValue ? _zoomScaleNormal.ToUInt32Value() : null;
				result.ZoomScaleSheetLayoutView = _zoomScaleSheetLayoutView.HasValue ? _zoomScaleSheetLayoutView.ToUInt32Value() : null;
				result.ZoomScalePageLayoutView = _zoomScalePageLayoutView.HasValue ? _zoomScalePageLayoutView.ToUInt32Value() : null;
				result.WorkbookViewId = _workbookViewId.HasValue ? _workbookViewId.ToUInt32Value() : null;
				Selections.Recompose(result);
				PivotSelections.Recompose(result);
				result.Pane = Pane.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Pane;
			yield return ExtensionList;
			yield return Selections;
			yield return PivotSelections;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PaneWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Pane>
	{
		private string _localName;
		private Nullable<double> _horizontalSplit;
		private Nullable<double> _verticalSplit;
		private string _topLeftCell;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> _activePane;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneStateValues> _state;

		/// <summary>
		/// Initializes a new instance of the <see cref="PaneWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PaneWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Pane wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HorizontalSplit"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public Nullable<double> HorizontalSplit
		{
			get { return _horizontalSplit; }
			set { OnHorizontalSplitPropertyChanging(ref value, _horizontalSplit); SetModified(value, _horizontalSplit); _horizontalSplit = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VerticalSplit"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public Nullable<double> VerticalSplit
		{
			get { return _verticalSplit; }
			set { OnVerticalSplitPropertyChanging(ref value, _verticalSplit); SetModified(value, _verticalSplit); _verticalSplit = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TopLeftCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public string TopLeftCell
		{
			get { return _topLeftCell; }
			set { OnTopLeftCellPropertyChanging(ref value, _topLeftCell); SetModified(value, _topLeftCell); _topLeftCell = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActivePane"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> ActivePane
		{
			get { return _activePane; }
			set { OnActivePanePropertyChanging(ref value, _activePane); SetModified(value, _activePane); _activePane = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="State"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneStateValues> State
		{
			get { return _state; }
			set { OnStatePropertyChanging(ref value, _state); SetModified(value, _state); _state = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnHorizontalSplitPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnVerticalSplitPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnTopLeftCellPropertyChanging(ref string modified, string original);
		partial void OnActivePanePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> original);
		partial void OnStatePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneStateValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneStateValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_horizontalSplit = default(Nullable<double>);
			_verticalSplit = default(Nullable<double>);
			_topLeftCell = default(string);
			_activePane = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues>);
			_state = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneStateValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_horizontalSplit = Wrapped.HorizontalSplit == null ? null : Wrapped.HorizontalSplit.ToNullable();
			_verticalSplit = Wrapped.VerticalSplit == null ? null : Wrapped.VerticalSplit.ToNullable();
			_topLeftCell = Wrapped.TopLeftCell == null ? null : Wrapped.TopLeftCell.ToString();
			if (Wrapped.ActivePane != null) _activePane = Wrapped.ActivePane;
			if (Wrapped.State != null) _state = Wrapped.State;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Pane"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Pane Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Pane();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ActivePane = _activePane;
				result.State = _state;
				result.HorizontalSplit = _horizontalSplit.HasValue ? _horizontalSplit.ToDoubleValue() : null;
				result.VerticalSplit = _verticalSplit.HasValue ? _verticalSplit.ToDoubleValue() : null;
				result.TopLeftCell = _topLeftCell == null ? null : StringValue.FromString(_topLeftCell);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SelectionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Selection>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> _pane;
		private string _activeCell;
		private Nullable<uint> _activeCellId;

		/// <summary>
		/// Initializes a new instance of the <see cref="SelectionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SelectionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Selection wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Pane"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> Pane
		{
			get { return _pane; }
			set { OnPanePropertyChanging(ref value, _pane); SetModified(value, _pane); _pane = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> instance.
		/// </summary>
		public string ActiveCell
		{
			get { return _activeCell; }
			set { OnActiveCellPropertyChanging(ref value, _activeCell); SetModified(value, _activeCell); _activeCell = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveCellId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> instance.
		/// </summary>
		public Nullable<uint> ActiveCellId
		{
			get { return _activeCellId; }
			set { OnActiveCellIdPropertyChanging(ref value, _activeCellId); SetModified(value, _activeCellId); _activeCellId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPanePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> original);
		partial void OnActiveCellPropertyChanging(ref string modified, string original);
		partial void OnActiveCellIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_pane = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues>);
			_activeCell = default(string);
			_activeCellId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_activeCell = Wrapped.ActiveCell == null ? null : Wrapped.ActiveCell.ToString();
			_activeCellId = Wrapped.ActiveCellId == null ? null : Wrapped.ActiveCellId.ToNullable();
			if (Wrapped.Pane != null) _pane = Wrapped.Pane;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Selection"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Selection Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Selection();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Pane = _pane;
				result.ActiveCell = _activeCell == null ? null : StringValue.FromString(_activeCell);
				result.ActiveCellId = _activeCellId.HasValue ? _activeCellId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotSelectionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotSelection>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> _pane;
		private Nullable<bool> _showHeader;
		private Nullable<bool> _label;
		private Nullable<bool> _data;
		private Nullable<bool> _extendable;
		private Nullable<uint> _count;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> _axis;
		private Nullable<uint> _dimension;
		private Nullable<uint> _start;
		private Nullable<uint> _min;
		private Nullable<uint> _max;
		private Nullable<uint> _activeRow;
		private Nullable<uint> _activeColumn;
		private Nullable<uint> _previousRow;
		private Nullable<uint> _previousColumn;
		private Nullable<uint> _click;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotSelectionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotSelectionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotSelection wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Pane"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> Pane
		{
			get { return _pane; }
			set { OnPanePropertyChanging(ref value, _pane); SetModified(value, _pane); _pane = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowHeader"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<bool> ShowHeader
		{
			get { return _showHeader; }
			set { OnShowHeaderPropertyChanging(ref value, _showHeader); SetModified(value, _showHeader); _showHeader = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Label"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<bool> Label
		{
			get { return _label; }
			set { OnLabelPropertyChanging(ref value, _label); SetModified(value, _label); _label = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Data"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<bool> Data
		{
			get { return _data; }
			set { OnDataPropertyChanging(ref value, _data); SetModified(value, _data); _data = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Extendable"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<bool> Extendable
		{
			get { return _extendable; }
			set { OnExtendablePropertyChanging(ref value, _extendable); SetModified(value, _extendable); _extendable = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Axis"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> Axis
		{
			get { return _axis; }
			set { OnAxisPropertyChanging(ref value, _axis); SetModified(value, _axis); _axis = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dimension"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Dimension
		{
			get { return _dimension; }
			set { OnDimensionPropertyChanging(ref value, _dimension); SetModified(value, _dimension); _dimension = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Start"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Start
		{
			get { return _start; }
			set { OnStartPropertyChanging(ref value, _start); SetModified(value, _start); _start = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Min"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Min
		{
			get { return _min; }
			set { OnMinPropertyChanging(ref value, _min); SetModified(value, _min); _min = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Max"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Max
		{
			get { return _max; }
			set { OnMaxPropertyChanging(ref value, _max); SetModified(value, _max); _max = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> ActiveRow
		{
			get { return _activeRow; }
			set { OnActiveRowPropertyChanging(ref value, _activeRow); SetModified(value, _activeRow); _activeRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ActiveColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> ActiveColumn
		{
			get { return _activeColumn; }
			set { OnActiveColumnPropertyChanging(ref value, _activeColumn); SetModified(value, _activeColumn); _activeColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PreviousRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> PreviousRow
		{
			get { return _previousRow; }
			set { OnPreviousRowPropertyChanging(ref value, _previousRow); SetModified(value, _previousRow); _previousRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PreviousColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> PreviousColumn
		{
			get { return _previousColumn; }
			set { OnPreviousColumnPropertyChanging(ref value, _previousColumn); SetModified(value, _previousColumn); _previousColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Click"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public Nullable<uint> Click
		{
			get { return _click; }
			set { OnClickPropertyChanging(ref value, _click); SetModified(value, _click); _click = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotAreaWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotAreaWrapper PivotArea { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPanePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues> original);
		partial void OnShowHeaderPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLabelPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDataPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnExtendablePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnAxisPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> original);
		partial void OnDimensionPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnStartPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMinPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMaxPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnActiveRowPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnActiveColumnPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnPreviousRowPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnPreviousColumnPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnClickPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_pane = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PaneValues>);
			_showHeader = default(Nullable<bool>);
			_label = default(Nullable<bool>);
			_data = default(Nullable<bool>);
			_extendable = default(Nullable<bool>);
			_count = default(Nullable<uint>);
			_axis = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues>);
			_dimension = default(Nullable<uint>);
			_start = default(Nullable<uint>);
			_min = default(Nullable<uint>);
			_max = default(Nullable<uint>);
			_activeRow = default(Nullable<uint>);
			_activeColumn = default(Nullable<uint>);
			_previousRow = default(Nullable<uint>);
			_previousColumn = default(Nullable<uint>);
			_click = default(Nullable<uint>);
			_id = default(string);
			PivotArea = new ExtremeML.Spreadsheet.PivotAreaWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_showHeader = Wrapped.ShowHeader == null ? null : Wrapped.ShowHeader.ToNullable();
			_label = Wrapped.Label == null ? null : Wrapped.Label.ToNullable();
			_data = Wrapped.Data == null ? null : Wrapped.Data.ToNullable();
			_extendable = Wrapped.Extendable == null ? null : Wrapped.Extendable.ToNullable();
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_dimension = Wrapped.Dimension == null ? null : Wrapped.Dimension.ToNullable();
			_start = Wrapped.Start == null ? null : Wrapped.Start.ToNullable();
			_min = Wrapped.Min == null ? null : Wrapped.Min.ToNullable();
			_max = Wrapped.Max == null ? null : Wrapped.Max.ToNullable();
			_activeRow = Wrapped.ActiveRow == null ? null : Wrapped.ActiveRow.ToNullable();
			_activeColumn = Wrapped.ActiveColumn == null ? null : Wrapped.ActiveColumn.ToNullable();
			_previousRow = Wrapped.PreviousRow == null ? null : Wrapped.PreviousRow.ToNullable();
			_previousColumn = Wrapped.PreviousColumn == null ? null : Wrapped.PreviousColumn.ToNullable();
			_click = Wrapped.Click == null ? null : Wrapped.Click.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			if (Wrapped.Pane != null) _pane = Wrapped.Pane;
			if (Wrapped.Axis != null) _axis = Wrapped.Axis;
			PivotArea = new ExtremeML.Spreadsheet.PivotAreaWrapper(Wrapped.PivotArea, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotSelection"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotSelection Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotSelection();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Pane = _pane;
				result.Axis = _axis;
				result.ShowHeader = _showHeader.HasValue ? _showHeader.ToBooleanValue() : null;
				result.Label = _label.HasValue ? _label.ToBooleanValue() : null;
				result.Data = _data.HasValue ? _data.ToBooleanValue() : null;
				result.Extendable = _extendable.HasValue ? _extendable.ToBooleanValue() : null;
				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.Dimension = _dimension.HasValue ? _dimension.ToUInt32Value() : null;
				result.Start = _start.HasValue ? _start.ToUInt32Value() : null;
				result.Min = _min.HasValue ? _min.ToUInt32Value() : null;
				result.Max = _max.HasValue ? _max.ToUInt32Value() : null;
				result.ActiveRow = _activeRow.HasValue ? _activeRow.ToUInt32Value() : null;
				result.ActiveColumn = _activeColumn.HasValue ? _activeColumn.ToUInt32Value() : null;
				result.PreviousRow = _previousRow.HasValue ? _previousRow.ToUInt32Value() : null;
				result.PreviousColumn = _previousColumn.HasValue ? _previousColumn.ToUInt32Value() : null;
				result.Click = _click.HasValue ? _click.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.PivotArea = PivotArea.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return PivotArea;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotAreaWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotArea>
	{
		private string _localName;
		private Nullable<int> _field;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotAreaValues> _type;
		private Nullable<bool> _dataOnly;
		private Nullable<bool> _labelOnly;
		private Nullable<bool> _grandRow;
		private Nullable<bool> _grandColumn;
		private Nullable<bool> _cacheIndex;
		private Nullable<bool> _outline;
		private string _offset;
		private Nullable<bool> _collapsedLevelsAreSubtotals;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> _axis;
		private Nullable<uint> _fieldPosition;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotAreaWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotAreaWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotArea wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Field"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<int> Field
		{
			get { return _field; }
			set { OnFieldPropertyChanging(ref value, _field); SetModified(value, _field); _field = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotAreaValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataOnly"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> DataOnly
		{
			get { return _dataOnly; }
			set { OnDataOnlyPropertyChanging(ref value, _dataOnly); SetModified(value, _dataOnly); _dataOnly = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LabelOnly"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> LabelOnly
		{
			get { return _labelOnly; }
			set { OnLabelOnlyPropertyChanging(ref value, _labelOnly); SetModified(value, _labelOnly); _labelOnly = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GrandRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> GrandRow
		{
			get { return _grandRow; }
			set { OnGrandRowPropertyChanging(ref value, _grandRow); SetModified(value, _grandRow); _grandRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GrandColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> GrandColumn
		{
			get { return _grandColumn; }
			set { OnGrandColumnPropertyChanging(ref value, _grandColumn); SetModified(value, _grandColumn); _grandColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CacheIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> CacheIndex
		{
			get { return _cacheIndex; }
			set { OnCacheIndexPropertyChanging(ref value, _cacheIndex); SetModified(value, _cacheIndex); _cacheIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Outline"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> Outline
		{
			get { return _outline; }
			set { OnOutlinePropertyChanging(ref value, _outline); SetModified(value, _outline); _outline = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Offset"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public string Offset
		{
			get { return _offset; }
			set { OnOffsetPropertyChanging(ref value, _offset); SetModified(value, _offset); _offset = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CollapsedLevelsAreSubtotals"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<bool> CollapsedLevelsAreSubtotals
		{
			get { return _collapsedLevelsAreSubtotals; }
			set { OnCollapsedLevelsAreSubtotalsPropertyChanging(ref value, _collapsedLevelsAreSubtotals); SetModified(value, _collapsedLevelsAreSubtotals); _collapsedLevelsAreSubtotals = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Axis"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> Axis
		{
			get { return _axis; }
			set { OnAxisPropertyChanging(ref value, _axis); SetModified(value, _axis); _axis = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FieldPosition"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.
		/// </summary>
		public Nullable<uint> FieldPosition
		{
			get { return _fieldPosition; }
			set { OnFieldPositionPropertyChanging(ref value, _fieldPosition); SetModified(value, _fieldPosition); _fieldPosition = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotAreaReferencesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotAreaReferencesWrapper PivotAreaReferences { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFieldPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotAreaValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotAreaValues> original);
		partial void OnDataOnlyPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLabelOnlyPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnGrandRowPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnGrandColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCacheIndexPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOffsetPropertyChanging(ref string modified, string original);
		partial void OnCollapsedLevelsAreSubtotalsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAxisPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues> original);
		partial void OnFieldPositionPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_field = default(Nullable<int>);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotAreaValues>);
			_dataOnly = default(Nullable<bool>);
			_labelOnly = default(Nullable<bool>);
			_grandRow = default(Nullable<bool>);
			_grandColumn = default(Nullable<bool>);
			_cacheIndex = default(Nullable<bool>);
			_outline = default(Nullable<bool>);
			_offset = default(string);
			_collapsedLevelsAreSubtotals = default(Nullable<bool>);
			_axis = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PivotTableAxisValues>);
			_fieldPosition = default(Nullable<uint>);
			PivotAreaReferences = new ExtremeML.Spreadsheet.PivotAreaReferencesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_field = Wrapped.Field == null ? null : Wrapped.Field.ToNullable();
			_dataOnly = Wrapped.DataOnly == null ? null : Wrapped.DataOnly.ToNullable();
			_labelOnly = Wrapped.LabelOnly == null ? null : Wrapped.LabelOnly.ToNullable();
			_grandRow = Wrapped.GrandRow == null ? null : Wrapped.GrandRow.ToNullable();
			_grandColumn = Wrapped.GrandColumn == null ? null : Wrapped.GrandColumn.ToNullable();
			_cacheIndex = Wrapped.CacheIndex == null ? null : Wrapped.CacheIndex.ToNullable();
			_outline = Wrapped.Outline == null ? null : Wrapped.Outline.ToNullable();
			_offset = Wrapped.Offset == null ? null : Wrapped.Offset.ToString();
			_collapsedLevelsAreSubtotals = Wrapped.CollapsedLevelsAreSubtotals == null ? null : Wrapped.CollapsedLevelsAreSubtotals.ToNullable();
			_fieldPosition = Wrapped.FieldPosition == null ? null : Wrapped.FieldPosition.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.Axis != null) _axis = Wrapped.Axis;
			PivotAreaReferences = new ExtremeML.Spreadsheet.PivotAreaReferencesWrapper(Wrapped.PivotAreaReferences, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotArea"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotArea Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotArea();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Axis = _axis;
				result.Field = _field.HasValue ? _field.ToInt32Value() : null;
				result.DataOnly = _dataOnly.HasValue ? _dataOnly.ToBooleanValue() : null;
				result.LabelOnly = _labelOnly.HasValue ? _labelOnly.ToBooleanValue() : null;
				result.GrandRow = _grandRow.HasValue ? _grandRow.ToBooleanValue() : null;
				result.GrandColumn = _grandColumn.HasValue ? _grandColumn.ToBooleanValue() : null;
				result.CacheIndex = _cacheIndex.HasValue ? _cacheIndex.ToBooleanValue() : null;
				result.Outline = _outline.HasValue ? _outline.ToBooleanValue() : null;
				result.Offset = _offset == null ? null : StringValue.FromString(_offset);
				result.CollapsedLevelsAreSubtotals = _collapsedLevelsAreSubtotals.HasValue ? _collapsedLevelsAreSubtotals.ToBooleanValue() : null;
				result.FieldPosition = _fieldPosition.HasValue ? _fieldPosition.ToUInt32Value() : null;
				result.PivotAreaReferences = PivotAreaReferences.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return PivotAreaReferences;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotAreaReferencesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotAreaReferencesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotAreaReferencesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PivotAreaReferenceWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PivotAreaReferenceWrapperCollection PivotAreaReferences { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			PivotAreaReferences = new ExtremeML.Spreadsheet.PivotAreaReferenceWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			PivotAreaReferences = new ExtremeML.Spreadsheet.PivotAreaReferenceWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotAreaReferences();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				PivotAreaReferences.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return PivotAreaReferences;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotAreaReferenceWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference>
	{
		private string _localName;
		private Nullable<uint> _field;
		private Nullable<uint> _count;
		private Nullable<bool> _selected;
		private Nullable<bool> _byPosition;
		private Nullable<bool> _relative;
		private Nullable<bool> _defaultSubtotal;
		private Nullable<bool> _sumSubtotal;
		private Nullable<bool> _countASubtotal;
		private Nullable<bool> _averageSubtotal;
		private Nullable<bool> _maxSubtotal;
		private Nullable<bool> _minSubtotal;
		private Nullable<bool> _applyProductInSubtotal;
		private Nullable<bool> _countSubtotal;
		private Nullable<bool> _applyStandardDeviationInSubtotal;
		private Nullable<bool> _applyStandardDeviationPInSubtotal;
		private Nullable<bool> _applyVarianceInSubtotal;
		private Nullable<bool> _applyVariancePInSubtotal;

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotAreaReferenceWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotAreaReferenceWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Field"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<uint> Field
		{
			get { return _field; }
			set { OnFieldPropertyChanging(ref value, _field); SetModified(value, _field); _field = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Selected"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> Selected
		{
			get { return _selected; }
			set { OnSelectedPropertyChanging(ref value, _selected); SetModified(value, _selected); _selected = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ByPosition"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ByPosition
		{
			get { return _byPosition; }
			set { OnByPositionPropertyChanging(ref value, _byPosition); SetModified(value, _byPosition); _byPosition = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Relative"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> Relative
		{
			get { return _relative; }
			set { OnRelativePropertyChanging(ref value, _relative); SetModified(value, _relative); _relative = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> DefaultSubtotal
		{
			get { return _defaultSubtotal; }
			set { OnDefaultSubtotalPropertyChanging(ref value, _defaultSubtotal); SetModified(value, _defaultSubtotal); _defaultSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SumSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> SumSubtotal
		{
			get { return _sumSubtotal; }
			set { OnSumSubtotalPropertyChanging(ref value, _sumSubtotal); SetModified(value, _sumSubtotal); _sumSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CountASubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> CountASubtotal
		{
			get { return _countASubtotal; }
			set { OnCountASubtotalPropertyChanging(ref value, _countASubtotal); SetModified(value, _countASubtotal); _countASubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AverageSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> AverageSubtotal
		{
			get { return _averageSubtotal; }
			set { OnAverageSubtotalPropertyChanging(ref value, _averageSubtotal); SetModified(value, _averageSubtotal); _averageSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MaxSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> MaxSubtotal
		{
			get { return _maxSubtotal; }
			set { OnMaxSubtotalPropertyChanging(ref value, _maxSubtotal); SetModified(value, _maxSubtotal); _maxSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MinSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> MinSubtotal
		{
			get { return _minSubtotal; }
			set { OnMinSubtotalPropertyChanging(ref value, _minSubtotal); SetModified(value, _minSubtotal); _minSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyProductInSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ApplyProductInSubtotal
		{
			get { return _applyProductInSubtotal; }
			set { OnApplyProductInSubtotalPropertyChanging(ref value, _applyProductInSubtotal); SetModified(value, _applyProductInSubtotal); _applyProductInSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CountSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> CountSubtotal
		{
			get { return _countSubtotal; }
			set { OnCountSubtotalPropertyChanging(ref value, _countSubtotal); SetModified(value, _countSubtotal); _countSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyStandardDeviationInSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ApplyStandardDeviationInSubtotal
		{
			get { return _applyStandardDeviationInSubtotal; }
			set { OnApplyStandardDeviationInSubtotalPropertyChanging(ref value, _applyStandardDeviationInSubtotal); SetModified(value, _applyStandardDeviationInSubtotal); _applyStandardDeviationInSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyStandardDeviationPInSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ApplyStandardDeviationPInSubtotal
		{
			get { return _applyStandardDeviationPInSubtotal; }
			set { OnApplyStandardDeviationPInSubtotalPropertyChanging(ref value, _applyStandardDeviationPInSubtotal); SetModified(value, _applyStandardDeviationPInSubtotal); _applyStandardDeviationPInSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyVarianceInSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ApplyVarianceInSubtotal
		{
			get { return _applyVarianceInSubtotal; }
			set { OnApplyVarianceInSubtotalPropertyChanging(ref value, _applyVarianceInSubtotal); SetModified(value, _applyVarianceInSubtotal); _applyVarianceInSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyVariancePInSubtotal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.
		/// </summary>
		public Nullable<bool> ApplyVariancePInSubtotal
		{
			get { return _applyVariancePInSubtotal; }
			set { OnApplyVariancePInSubtotalPropertyChanging(ref value, _applyVariancePInSubtotal); SetModified(value, _applyVariancePInSubtotal); _applyVariancePInSubtotal = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FieldItemWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FieldItemWrapperCollection FieldItems { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFieldPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnSelectedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnByPositionPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRelativePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSumSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCountASubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAverageSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMaxSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMinSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyProductInSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCountSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyStandardDeviationInSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyStandardDeviationPInSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyVarianceInSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyVariancePInSubtotalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_field = default(Nullable<uint>);
			_count = default(Nullable<uint>);
			_selected = default(Nullable<bool>);
			_byPosition = default(Nullable<bool>);
			_relative = default(Nullable<bool>);
			_defaultSubtotal = default(Nullable<bool>);
			_sumSubtotal = default(Nullable<bool>);
			_countASubtotal = default(Nullable<bool>);
			_averageSubtotal = default(Nullable<bool>);
			_maxSubtotal = default(Nullable<bool>);
			_minSubtotal = default(Nullable<bool>);
			_applyProductInSubtotal = default(Nullable<bool>);
			_countSubtotal = default(Nullable<bool>);
			_applyStandardDeviationInSubtotal = default(Nullable<bool>);
			_applyStandardDeviationPInSubtotal = default(Nullable<bool>);
			_applyVarianceInSubtotal = default(Nullable<bool>);
			_applyVariancePInSubtotal = default(Nullable<bool>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			FieldItems = new ExtremeML.Spreadsheet.FieldItemWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_field = Wrapped.Field == null ? null : Wrapped.Field.ToNullable();
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_selected = Wrapped.Selected == null ? null : Wrapped.Selected.ToNullable();
			_byPosition = Wrapped.ByPosition == null ? null : Wrapped.ByPosition.ToNullable();
			_relative = Wrapped.Relative == null ? null : Wrapped.Relative.ToNullable();
			_defaultSubtotal = Wrapped.DefaultSubtotal == null ? null : Wrapped.DefaultSubtotal.ToNullable();
			_sumSubtotal = Wrapped.SumSubtotal == null ? null : Wrapped.SumSubtotal.ToNullable();
			_countASubtotal = Wrapped.CountASubtotal == null ? null : Wrapped.CountASubtotal.ToNullable();
			_averageSubtotal = Wrapped.AverageSubtotal == null ? null : Wrapped.AverageSubtotal.ToNullable();
			_maxSubtotal = Wrapped.MaxSubtotal == null ? null : Wrapped.MaxSubtotal.ToNullable();
			_minSubtotal = Wrapped.MinSubtotal == null ? null : Wrapped.MinSubtotal.ToNullable();
			_applyProductInSubtotal = Wrapped.ApplyProductInSubtotal == null ? null : Wrapped.ApplyProductInSubtotal.ToNullable();
			_countSubtotal = Wrapped.CountSubtotal == null ? null : Wrapped.CountSubtotal.ToNullable();
			_applyStandardDeviationInSubtotal = Wrapped.ApplyStandardDeviationInSubtotal == null ? null : Wrapped.ApplyStandardDeviationInSubtotal.ToNullable();
			_applyStandardDeviationPInSubtotal = Wrapped.ApplyStandardDeviationPInSubtotal == null ? null : Wrapped.ApplyStandardDeviationPInSubtotal.ToNullable();
			_applyVarianceInSubtotal = Wrapped.ApplyVarianceInSubtotal == null ? null : Wrapped.ApplyVarianceInSubtotal.ToNullable();
			_applyVariancePInSubtotal = Wrapped.ApplyVariancePInSubtotal == null ? null : Wrapped.ApplyVariancePInSubtotal.ToNullable();
			FieldItems = new ExtremeML.Spreadsheet.FieldItemWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Field = _field.HasValue ? _field.ToUInt32Value() : null;
				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.Selected = _selected.HasValue ? _selected.ToBooleanValue() : null;
				result.ByPosition = _byPosition.HasValue ? _byPosition.ToBooleanValue() : null;
				result.Relative = _relative.HasValue ? _relative.ToBooleanValue() : null;
				result.DefaultSubtotal = _defaultSubtotal.HasValue ? _defaultSubtotal.ToBooleanValue() : null;
				result.SumSubtotal = _sumSubtotal.HasValue ? _sumSubtotal.ToBooleanValue() : null;
				result.CountASubtotal = _countASubtotal.HasValue ? _countASubtotal.ToBooleanValue() : null;
				result.AverageSubtotal = _averageSubtotal.HasValue ? _averageSubtotal.ToBooleanValue() : null;
				result.MaxSubtotal = _maxSubtotal.HasValue ? _maxSubtotal.ToBooleanValue() : null;
				result.MinSubtotal = _minSubtotal.HasValue ? _minSubtotal.ToBooleanValue() : null;
				result.ApplyProductInSubtotal = _applyProductInSubtotal.HasValue ? _applyProductInSubtotal.ToBooleanValue() : null;
				result.CountSubtotal = _countSubtotal.HasValue ? _countSubtotal.ToBooleanValue() : null;
				result.ApplyStandardDeviationInSubtotal = _applyStandardDeviationInSubtotal.HasValue ? _applyStandardDeviationInSubtotal.ToBooleanValue() : null;
				result.ApplyStandardDeviationPInSubtotal = _applyStandardDeviationPInSubtotal.HasValue ? _applyStandardDeviationPInSubtotal.ToBooleanValue() : null;
				result.ApplyVarianceInSubtotal = _applyVarianceInSubtotal.HasValue ? _applyVarianceInSubtotal.ToBooleanValue() : null;
				result.ApplyVariancePInSubtotal = _applyVariancePInSubtotal.HasValue ? _applyVariancePInSubtotal.ToBooleanValue() : null;
				FieldItems.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return FieldItems;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FieldItem"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FieldItemWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FieldItem>
	{
		private string _localName;
		private Nullable<uint> _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FieldItemWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FieldItem"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FieldItemWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FieldItem wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FieldItem"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FieldItem"/> instance.
		/// </summary>
		public Nullable<uint> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FieldItem"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FieldItem Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FieldItem();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val.HasValue ? _val.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetFormatPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties>
	{
		private string _localName;
		private Nullable<uint> _baseColumnWidth;
		private Nullable<double> _defaultColumnWidth;
		private Nullable<double> _defaultRowHeight;
		private Nullable<bool> _customHeight;
		private Nullable<bool> _zeroHeight;
		private Nullable<bool> _thickTop;
		private Nullable<bool> _thickBottom;
		private Nullable<byte> _outlineLevelRow;
		private Nullable<byte> _outlineLevelColumn;
		private Nullable<double> _dyDescent;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetFormatPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetFormatPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BaseColumnWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<uint> BaseColumnWidth
		{
			get { return _baseColumnWidth; }
			set { OnBaseColumnWidthPropertyChanging(ref value, _baseColumnWidth); SetModified(value, _baseColumnWidth); _baseColumnWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultColumnWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<double> DefaultColumnWidth
		{
			get { return _defaultColumnWidth; }
			set { OnDefaultColumnWidthPropertyChanging(ref value, _defaultColumnWidth); SetModified(value, _defaultColumnWidth); _defaultColumnWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultRowHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<double> DefaultRowHeight
		{
			get { return _defaultRowHeight; }
			set { OnDefaultRowHeightPropertyChanging(ref value, _defaultRowHeight); SetModified(value, _defaultRowHeight); _defaultRowHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<bool> CustomHeight
		{
			get { return _customHeight; }
			set { OnCustomHeightPropertyChanging(ref value, _customHeight); SetModified(value, _customHeight); _customHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZeroHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<bool> ZeroHeight
		{
			get { return _zeroHeight; }
			set { OnZeroHeightPropertyChanging(ref value, _zeroHeight); SetModified(value, _zeroHeight); _zeroHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ThickTop"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<bool> ThickTop
		{
			get { return _thickTop; }
			set { OnThickTopPropertyChanging(ref value, _thickTop); SetModified(value, _thickTop); _thickTop = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ThickBottom"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<bool> ThickBottom
		{
			get { return _thickBottom; }
			set { OnThickBottomPropertyChanging(ref value, _thickBottom); SetModified(value, _thickBottom); _thickBottom = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineLevelRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<byte> OutlineLevelRow
		{
			get { return _outlineLevelRow; }
			set { OnOutlineLevelRowPropertyChanging(ref value, _outlineLevelRow); SetModified(value, _outlineLevelRow); _outlineLevelRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineLevelColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<byte> OutlineLevelColumn
		{
			get { return _outlineLevelColumn; }
			set { OnOutlineLevelColumnPropertyChanging(ref value, _outlineLevelColumn); SetModified(value, _outlineLevelColumn); _outlineLevelColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DyDescent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.
		/// </summary>
		public Nullable<double> DyDescent
		{
			get { return _dyDescent; }
			set { OnDyDescentPropertyChanging(ref value, _dyDescent); SetModified(value, _dyDescent); _dyDescent = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnBaseColumnWidthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDefaultColumnWidthPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnDefaultRowHeightPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnCustomHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnZeroHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnThickTopPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnThickBottomPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlineLevelRowPropertyChanging(ref Nullable<byte> modified, Nullable<byte> original);
		partial void OnOutlineLevelColumnPropertyChanging(ref Nullable<byte> modified, Nullable<byte> original);
		partial void OnDyDescentPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_baseColumnWidth = default(Nullable<uint>);
			_defaultColumnWidth = default(Nullable<double>);
			_defaultRowHeight = default(Nullable<double>);
			_customHeight = default(Nullable<bool>);
			_zeroHeight = default(Nullable<bool>);
			_thickTop = default(Nullable<bool>);
			_thickBottom = default(Nullable<bool>);
			_outlineLevelRow = default(Nullable<byte>);
			_outlineLevelColumn = default(Nullable<byte>);
			_dyDescent = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_baseColumnWidth = Wrapped.BaseColumnWidth == null ? null : Wrapped.BaseColumnWidth.ToNullable();
			_defaultColumnWidth = Wrapped.DefaultColumnWidth == null ? null : Wrapped.DefaultColumnWidth.ToNullable();
			_defaultRowHeight = Wrapped.DefaultRowHeight == null ? null : Wrapped.DefaultRowHeight.ToNullable();
			_customHeight = Wrapped.CustomHeight == null ? null : Wrapped.CustomHeight.ToNullable();
			_zeroHeight = Wrapped.ZeroHeight == null ? null : Wrapped.ZeroHeight.ToNullable();
			_thickTop = Wrapped.ThickTop == null ? null : Wrapped.ThickTop.ToNullable();
			_thickBottom = Wrapped.ThickBottom == null ? null : Wrapped.ThickBottom.ToNullable();
			_outlineLevelRow = Wrapped.OutlineLevelRow == null ? null : Wrapped.OutlineLevelRow.ToNullable();
			_outlineLevelColumn = Wrapped.OutlineLevelColumn == null ? null : Wrapped.OutlineLevelColumn.ToNullable();
			_dyDescent = Wrapped.DyDescent == null ? null : Wrapped.DyDescent.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.BaseColumnWidth = _baseColumnWidth.HasValue ? _baseColumnWidth.ToUInt32Value() : null;
				result.DefaultColumnWidth = _defaultColumnWidth.HasValue ? _defaultColumnWidth.ToDoubleValue() : null;
				result.DefaultRowHeight = _defaultRowHeight.HasValue ? _defaultRowHeight.ToDoubleValue() : null;
				result.CustomHeight = _customHeight.HasValue ? _customHeight.ToBooleanValue() : null;
				result.ZeroHeight = _zeroHeight.HasValue ? _zeroHeight.ToBooleanValue() : null;
				result.ThickTop = _thickTop.HasValue ? _thickTop.ToBooleanValue() : null;
				result.ThickBottom = _thickBottom.HasValue ? _thickBottom.ToBooleanValue() : null;
				result.OutlineLevelRow = _outlineLevelRow.HasValue ? _outlineLevelRow.ToByteValue() : null;
				result.OutlineLevelColumn = _outlineLevelColumn.HasValue ? _outlineLevelColumn.ToByteValue() : null;
				result.DyDescent = _dyDescent.HasValue ? _dyDescent.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetData"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetDataWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetData>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetDataWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetData"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetDataWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetData wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetData"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RowWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RowWrapperCollection Rows { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Rows = new ExtremeML.Spreadsheet.RowWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Rows = new ExtremeML.Spreadsheet.RowWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetData"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetData Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetData();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Rows.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Rows;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RowWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Row>
	{
		private string _localName;
		private Nullable<uint> _rowIndex;
		private Nullable<uint> _styleIndex;
		private Nullable<bool> _customFormat;
		private Nullable<double> _height;
		private Nullable<bool> _hidden;
		private Nullable<bool> _customHeight;
		private Nullable<byte> _outlineLevel;
		private Nullable<bool> _collapsed;
		private Nullable<bool> _thickTop;
		private Nullable<bool> _thickBot;
		private Nullable<bool> _showPhonetic;
		private Nullable<double> _dyDescent;

		/// <summary>
		/// Initializes a new instance of the <see cref="RowWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RowWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Row wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RowIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<uint> RowIndex
		{
			get { return _rowIndex; }
			set { OnRowIndexPropertyChanging(ref value, _rowIndex); SetModified(value, _rowIndex); _rowIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StyleIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<uint> StyleIndex
		{
			get { return _styleIndex; }
			set { OnStyleIndexPropertyChanging(ref value, _styleIndex); SetModified(value, _styleIndex); _styleIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomFormat"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> CustomFormat
		{
			get { return _customFormat; }
			set { OnCustomFormatPropertyChanging(ref value, _customFormat); SetModified(value, _customFormat); _customFormat = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Height"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<double> Height
		{
			get { return _height; }
			set { OnHeightPropertyChanging(ref value, _height); SetModified(value, _height); _height = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> CustomHeight
		{
			get { return _customHeight; }
			set { OnCustomHeightPropertyChanging(ref value, _customHeight); SetModified(value, _customHeight); _customHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineLevel"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<byte> OutlineLevel
		{
			get { return _outlineLevel; }
			set { OnOutlineLevelPropertyChanging(ref value, _outlineLevel); SetModified(value, _outlineLevel); _outlineLevel = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Collapsed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> Collapsed
		{
			get { return _collapsed; }
			set { OnCollapsedPropertyChanging(ref value, _collapsed); SetModified(value, _collapsed); _collapsed = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ThickTop"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> ThickTop
		{
			get { return _thickTop; }
			set { OnThickTopPropertyChanging(ref value, _thickTop); SetModified(value, _thickTop); _thickTop = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ThickBot"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> ThickBot
		{
			get { return _thickBot; }
			set { OnThickBotPropertyChanging(ref value, _thickBot); SetModified(value, _thickBot); _thickBot = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowPhonetic"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<bool> ShowPhonetic
		{
			get { return _showPhonetic; }
			set { OnShowPhoneticPropertyChanging(ref value, _showPhonetic); SetModified(value, _showPhonetic); _showPhonetic = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DyDescent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.
		/// </summary>
		public Nullable<double> DyDescent
		{
			get { return _dyDescent; }
			set { OnDyDescentPropertyChanging(ref value, _dyDescent); SetModified(value, _dyDescent); _dyDescent = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellWrapperCollection Cells { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnRowIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnStyleIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCustomFormatPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeightPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCustomHeightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlineLevelPropertyChanging(ref Nullable<byte> modified, Nullable<byte> original);
		partial void OnCollapsedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnThickTopPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnThickBotPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowPhoneticPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDyDescentPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_rowIndex = default(Nullable<uint>);
			_styleIndex = default(Nullable<uint>);
			_customFormat = default(Nullable<bool>);
			_height = default(Nullable<double>);
			_hidden = default(Nullable<bool>);
			_customHeight = default(Nullable<bool>);
			_outlineLevel = default(Nullable<byte>);
			_collapsed = default(Nullable<bool>);
			_thickTop = default(Nullable<bool>);
			_thickBot = default(Nullable<bool>);
			_showPhonetic = default(Nullable<bool>);
			_dyDescent = default(Nullable<double>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			Cells = new ExtremeML.Spreadsheet.CellWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_rowIndex = Wrapped.RowIndex == null ? null : Wrapped.RowIndex.ToNullable();
			_styleIndex = Wrapped.StyleIndex == null ? null : Wrapped.StyleIndex.ToNullable();
			_customFormat = Wrapped.CustomFormat == null ? null : Wrapped.CustomFormat.ToNullable();
			_height = Wrapped.Height == null ? null : Wrapped.Height.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
			_customHeight = Wrapped.CustomHeight == null ? null : Wrapped.CustomHeight.ToNullable();
			_outlineLevel = Wrapped.OutlineLevel == null ? null : Wrapped.OutlineLevel.ToNullable();
			_collapsed = Wrapped.Collapsed == null ? null : Wrapped.Collapsed.ToNullable();
			_thickTop = Wrapped.ThickTop == null ? null : Wrapped.ThickTop.ToNullable();
			_thickBot = Wrapped.ThickBot == null ? null : Wrapped.ThickBot.ToNullable();
			_showPhonetic = Wrapped.ShowPhonetic == null ? null : Wrapped.ShowPhonetic.ToNullable();
			_dyDescent = Wrapped.DyDescent == null ? null : Wrapped.DyDescent.ToNullable();
			Cells = new ExtremeML.Spreadsheet.CellWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Row"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Row Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Row();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.RowIndex = _rowIndex.HasValue ? _rowIndex.ToUInt32Value() : null;
				result.StyleIndex = _styleIndex.HasValue ? _styleIndex.ToUInt32Value() : null;
				result.CustomFormat = _customFormat.HasValue ? _customFormat.ToBooleanValue() : null;
				result.Height = _height.HasValue ? _height.ToDoubleValue() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;
				result.CustomHeight = _customHeight.HasValue ? _customHeight.ToBooleanValue() : null;
				result.OutlineLevel = _outlineLevel.HasValue ? _outlineLevel.ToByteValue() : null;
				result.Collapsed = _collapsed.HasValue ? _collapsed.ToBooleanValue() : null;
				result.ThickTop = _thickTop.HasValue ? _thickTop.ToBooleanValue() : null;
				result.ThickBot = _thickBot.HasValue ? _thickBot.ToBooleanValue() : null;
				result.ShowPhonetic = _showPhonetic.HasValue ? _showPhonetic.ToBooleanValue() : null;
				result.DyDescent = _dyDescent.HasValue ? _dyDescent.ToDoubleValue() : null;
				Cells.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return Cells;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Cell>
	{
		private string _localName;
		private string _cellReference;
		private Nullable<uint> _styleIndex;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CellValues> _dataType;
		private Nullable<uint> _cellMetaIndex;
		private Nullable<uint> _valueMetaIndex;
		private Nullable<bool> _showPhonetic;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Cell wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public string CellReference
		{
			get { return _cellReference; }
			set { OnCellReferencePropertyChanging(ref value, _cellReference); SetModified(value, _cellReference); _cellReference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StyleIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public Nullable<uint> StyleIndex
		{
			get { return _styleIndex; }
			set { OnStyleIndexPropertyChanging(ref value, _styleIndex); SetModified(value, _styleIndex); _styleIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CellValues> DataType
		{
			get { return _dataType; }
			set { OnDataTypePropertyChanging(ref value, _dataType); SetModified(value, _dataType); _dataType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellMetaIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public Nullable<uint> CellMetaIndex
		{
			get { return _cellMetaIndex; }
			set { OnCellMetaIndexPropertyChanging(ref value, _cellMetaIndex); SetModified(value, _cellMetaIndex); _cellMetaIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ValueMetaIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public Nullable<uint> ValueMetaIndex
		{
			get { return _valueMetaIndex; }
			set { OnValueMetaIndexPropertyChanging(ref value, _valueMetaIndex); SetModified(value, _valueMetaIndex); _valueMetaIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowPhonetic"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.
		/// </summary>
		public Nullable<bool> ShowPhonetic
		{
			get { return _showPhonetic; }
			set { OnShowPhoneticPropertyChanging(ref value, _showPhonetic); SetModified(value, _showPhonetic); _showPhonetic = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellFormulaWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellFormulaWrapper CellFormula { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellValueWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellValueWrapper CellValue { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.InlineStringWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.InlineStringWrapper InlineString { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCellReferencePropertyChanging(ref string modified, string original);
		partial void OnStyleIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDataTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CellValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CellValues> original);
		partial void OnCellMetaIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnValueMetaIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShowPhoneticPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cellReference = default(string);
			_styleIndex = default(Nullable<uint>);
			_dataType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CellValues>);
			_cellMetaIndex = default(Nullable<uint>);
			_valueMetaIndex = default(Nullable<uint>);
			_showPhonetic = default(Nullable<bool>);
			CellFormula = new ExtremeML.Spreadsheet.CellFormulaWrapper(null, this, Package);
			CellValue = new ExtremeML.Spreadsheet.CellValueWrapper(null, this, Package);
			InlineString = new ExtremeML.Spreadsheet.InlineStringWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cellReference = Wrapped.CellReference == null ? null : Wrapped.CellReference.ToString();
			_styleIndex = Wrapped.StyleIndex == null ? null : Wrapped.StyleIndex.ToNullable();
			_cellMetaIndex = Wrapped.CellMetaIndex == null ? null : Wrapped.CellMetaIndex.ToNullable();
			_valueMetaIndex = Wrapped.ValueMetaIndex == null ? null : Wrapped.ValueMetaIndex.ToNullable();
			_showPhonetic = Wrapped.ShowPhonetic == null ? null : Wrapped.ShowPhonetic.ToNullable();
			if (Wrapped.DataType != null) _dataType = Wrapped.DataType;
			CellFormula = new ExtremeML.Spreadsheet.CellFormulaWrapper(Wrapped.CellFormula, this, Package);
			CellValue = new ExtremeML.Spreadsheet.CellValueWrapper(Wrapped.CellValue, this, Package);
			InlineString = new ExtremeML.Spreadsheet.InlineStringWrapper(Wrapped.InlineString, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Cell"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Cell Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Cell();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DataType = _dataType;
				result.CellReference = _cellReference == null ? null : StringValue.FromString(_cellReference);
				result.StyleIndex = _styleIndex.HasValue ? _styleIndex.ToUInt32Value() : null;
				result.CellMetaIndex = _cellMetaIndex.HasValue ? _cellMetaIndex.ToUInt32Value() : null;
				result.ValueMetaIndex = _valueMetaIndex.HasValue ? _valueMetaIndex.ToUInt32Value() : null;
				result.ShowPhonetic = _showPhonetic.HasValue ? _showPhonetic.ToBooleanValue() : null;
				result.CellFormula = CellFormula.Recompose();
				result.CellValue = CellValue.Recompose();
				result.InlineString = InlineString.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellFormula;
			yield return CellValue;
			yield return InlineString;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellValue"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellValueWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellValue>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellValueWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellValue"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellValueWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellValue wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellValue"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellValue"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellValue"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellValue Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellValue();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.InlineString"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class InlineStringWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.InlineString>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="InlineStringWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.InlineString"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal InlineStringWrapper(
			DocumentFormat.OpenXml.Spreadsheet.InlineString wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InlineString"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TextWrapper Text { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticPropertiesWrapper PhoneticProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RunWrapperCollection Runs { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticRunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticRunWrapperCollection PhoneticRuns { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Text = new ExtremeML.Spreadsheet.TextWrapper(null, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(null, this, Package);
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(null, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(Wrapped, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(Wrapped, this, Package);
			Text = new ExtremeML.Spreadsheet.TextWrapper(Wrapped.Text, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.InlineString"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.InlineString Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.InlineString();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Runs.Recompose(result);
				PhoneticRuns.Recompose(result);
				result.Text = Text.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>();
				result.AppendChild(PhoneticProperties.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Text;
			yield return PhoneticProperties;
			yield return Runs;
			yield return PhoneticRuns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellFormulaWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellFormula>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CellFormulaValues> _formulaType;
		private Nullable<bool> _alwaysCalculateArray;
		private string _reference;
		private Nullable<bool> _dataTable2D;
		private Nullable<bool> _dataTableRow;
		private Nullable<bool> _input1Deleted;
		private Nullable<bool> _input2Deleted;
		private string _r1;
		private string _r2;
		private Nullable<bool> _calculateCell;
		private Nullable<uint> _sharedIndex;
		private Nullable<bool> _bx;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellFormulaWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellFormulaWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellFormula wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormulaType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CellFormulaValues> FormulaType
		{
			get { return _formulaType; }
			set { OnFormulaTypePropertyChanging(ref value, _formulaType); SetModified(value, _formulaType); _formulaType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlwaysCalculateArray"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> AlwaysCalculateArray
		{
			get { return _alwaysCalculateArray; }
			set { OnAlwaysCalculateArrayPropertyChanging(ref value, _alwaysCalculateArray); SetModified(value, _alwaysCalculateArray); _alwaysCalculateArray = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataTable2D"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> DataTable2D
		{
			get { return _dataTable2D; }
			set { OnDataTable2DPropertyChanging(ref value, _dataTable2D); SetModified(value, _dataTable2D); _dataTable2D = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataTableRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> DataTableRow
		{
			get { return _dataTableRow; }
			set { OnDataTableRowPropertyChanging(ref value, _dataTableRow); SetModified(value, _dataTableRow); _dataTableRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Input1Deleted"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> Input1Deleted
		{
			get { return _input1Deleted; }
			set { OnInput1DeletedPropertyChanging(ref value, _input1Deleted); SetModified(value, _input1Deleted); _input1Deleted = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Input2Deleted"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> Input2Deleted
		{
			get { return _input2Deleted; }
			set { OnInput2DeletedPropertyChanging(ref value, _input2Deleted); SetModified(value, _input2Deleted); _input2Deleted = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="R1"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public string R1
		{
			get { return _r1; }
			set { OnR1PropertyChanging(ref value, _r1); SetModified(value, _r1); _r1 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="R2"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public string R2
		{
			get { return _r2; }
			set { OnR2PropertyChanging(ref value, _r2); SetModified(value, _r2); _r2 = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculateCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> CalculateCell
		{
			get { return _calculateCell; }
			set { OnCalculateCellPropertyChanging(ref value, _calculateCell); SetModified(value, _calculateCell); _calculateCell = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SharedIndex"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<uint> SharedIndex
		{
			get { return _sharedIndex; }
			set { OnSharedIndexPropertyChanging(ref value, _sharedIndex); SetModified(value, _sharedIndex); _sharedIndex = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Bx"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<bool> Bx
		{
			get { return _bx; }
			set { OnBxPropertyChanging(ref value, _bx); SetModified(value, _bx); _bx = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFormulaTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CellFormulaValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CellFormulaValues> original);
		partial void OnAlwaysCalculateArrayPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnReferencePropertyChanging(ref string modified, string original);
		partial void OnDataTable2DPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDataTableRowPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInput1DeletedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInput2DeletedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnR1PropertyChanging(ref string modified, string original);
		partial void OnR2PropertyChanging(ref string modified, string original);
		partial void OnCalculateCellPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSharedIndexPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnBxPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_formulaType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CellFormulaValues>);
			_alwaysCalculateArray = default(Nullable<bool>);
			_reference = default(string);
			_dataTable2D = default(Nullable<bool>);
			_dataTableRow = default(Nullable<bool>);
			_input1Deleted = default(Nullable<bool>);
			_input2Deleted = default(Nullable<bool>);
			_r1 = default(string);
			_r2 = default(string);
			_calculateCell = default(Nullable<bool>);
			_sharedIndex = default(Nullable<uint>);
			_bx = default(Nullable<bool>);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_alwaysCalculateArray = Wrapped.AlwaysCalculateArray == null ? null : Wrapped.AlwaysCalculateArray.ToNullable();
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			_dataTable2D = Wrapped.DataTable2D == null ? null : Wrapped.DataTable2D.ToNullable();
			_dataTableRow = Wrapped.DataTableRow == null ? null : Wrapped.DataTableRow.ToNullable();
			_input1Deleted = Wrapped.Input1Deleted == null ? null : Wrapped.Input1Deleted.ToNullable();
			_input2Deleted = Wrapped.Input2Deleted == null ? null : Wrapped.Input2Deleted.ToNullable();
			_r1 = Wrapped.R1 == null ? null : Wrapped.R1.ToString();
			_r2 = Wrapped.R2 == null ? null : Wrapped.R2.ToString();
			_calculateCell = Wrapped.CalculateCell == null ? null : Wrapped.CalculateCell.ToNullable();
			_sharedIndex = Wrapped.SharedIndex == null ? null : Wrapped.SharedIndex.ToNullable();
			_bx = Wrapped.Bx == null ? null : Wrapped.Bx.ToNullable();
			if (Wrapped.FormulaType != null) _formulaType = Wrapped.FormulaType;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellFormula"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellFormula Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellFormula();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.FormulaType = _formulaType;
				result.Space = _space;
				result.AlwaysCalculateArray = _alwaysCalculateArray.HasValue ? _alwaysCalculateArray.ToBooleanValue() : null;
				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				result.DataTable2D = _dataTable2D.HasValue ? _dataTable2D.ToBooleanValue() : null;
				result.DataTableRow = _dataTableRow.HasValue ? _dataTableRow.ToBooleanValue() : null;
				result.Input1Deleted = _input1Deleted.HasValue ? _input1Deleted.ToBooleanValue() : null;
				result.Input2Deleted = _input2Deleted.HasValue ? _input2Deleted.ToBooleanValue() : null;
				result.R1 = _r1 == null ? null : StringValue.FromString(_r1);
				result.R2 = _r2 == null ? null : StringValue.FromString(_r2);
				result.CalculateCell = _calculateCell.HasValue ? _calculateCell.ToBooleanValue() : null;
				result.SharedIndex = _sharedIndex.HasValue ? _sharedIndex.ToUInt32Value() : null;
				result.Bx = _bx.HasValue ? _bx.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetCalculationPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties>
	{
		private string _localName;
		private Nullable<bool> _fullCalculationOnLoad;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetCalculationPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetCalculationPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FullCalculationOnLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties"/> instance.
		/// </summary>
		public Nullable<bool> FullCalculationOnLoad
		{
			get { return _fullCalculationOnLoad; }
			set { OnFullCalculationOnLoadPropertyChanging(ref value, _fullCalculationOnLoad); SetModified(value, _fullCalculationOnLoad); _fullCalculationOnLoad = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFullCalculationOnLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_fullCalculationOnLoad = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_fullCalculationOnLoad = Wrapped.FullCalculationOnLoad == null ? null : Wrapped.FullCalculationOnLoad.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetCalculationProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.FullCalculationOnLoad = _fullCalculationOnLoad.HasValue ? _fullCalculationOnLoad.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetProtectionWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetProtection>
	{
		private string _localName;
		private string _password;
		private string _algorithmName;
		private string _hashValue;
		private string _saltValue;
		private Nullable<uint> _spinCount;
		private Nullable<bool> _sheet;
		private Nullable<bool> _objects;
		private Nullable<bool> _scenarios;
		private Nullable<bool> _formatCells;
		private Nullable<bool> _formatColumns;
		private Nullable<bool> _formatRows;
		private Nullable<bool> _insertColumns;
		private Nullable<bool> _insertRows;
		private Nullable<bool> _insertHyperlinks;
		private Nullable<bool> _deleteColumns;
		private Nullable<bool> _deleteRows;
		private Nullable<bool> _selectLockedCells;
		private Nullable<bool> _sort;
		private Nullable<bool> _autoFilter;
		private Nullable<bool> _pivotTables;
		private Nullable<bool> _selectUnlockedCells;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetProtectionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetProtectionWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetProtection wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Password"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public string Password
		{
			get { return _password; }
			set { OnPasswordPropertyChanging(ref value, _password); SetModified(value, _password); _password = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlgorithmName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public string AlgorithmName
		{
			get { return _algorithmName; }
			set { OnAlgorithmNamePropertyChanging(ref value, _algorithmName); SetModified(value, _algorithmName); _algorithmName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HashValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public string HashValue
		{
			get { return _hashValue; }
			set { OnHashValuePropertyChanging(ref value, _hashValue); SetModified(value, _hashValue); _hashValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SaltValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public string SaltValue
		{
			get { return _saltValue; }
			set { OnSaltValuePropertyChanging(ref value, _saltValue); SetModified(value, _saltValue); _saltValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SpinCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<uint> SpinCount
		{
			get { return _spinCount; }
			set { OnSpinCountPropertyChanging(ref value, _spinCount); SetModified(value, _spinCount); _spinCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Sheet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> Sheet
		{
			get { return _sheet; }
			set { OnSheetPropertyChanging(ref value, _sheet); SetModified(value, _sheet); _sheet = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Objects"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> Objects
		{
			get { return _objects; }
			set { OnObjectsPropertyChanging(ref value, _objects); SetModified(value, _objects); _objects = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Scenarios"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> Scenarios
		{
			get { return _scenarios; }
			set { OnScenariosPropertyChanging(ref value, _scenarios); SetModified(value, _scenarios); _scenarios = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatCells"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> FormatCells
		{
			get { return _formatCells; }
			set { OnFormatCellsPropertyChanging(ref value, _formatCells); SetModified(value, _formatCells); _formatCells = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatColumns"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> FormatColumns
		{
			get { return _formatColumns; }
			set { OnFormatColumnsPropertyChanging(ref value, _formatColumns); SetModified(value, _formatColumns); _formatColumns = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatRows"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> FormatRows
		{
			get { return _formatRows; }
			set { OnFormatRowsPropertyChanging(ref value, _formatRows); SetModified(value, _formatRows); _formatRows = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InsertColumns"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> InsertColumns
		{
			get { return _insertColumns; }
			set { OnInsertColumnsPropertyChanging(ref value, _insertColumns); SetModified(value, _insertColumns); _insertColumns = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InsertRows"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> InsertRows
		{
			get { return _insertRows; }
			set { OnInsertRowsPropertyChanging(ref value, _insertRows); SetModified(value, _insertRows); _insertRows = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InsertHyperlinks"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> InsertHyperlinks
		{
			get { return _insertHyperlinks; }
			set { OnInsertHyperlinksPropertyChanging(ref value, _insertHyperlinks); SetModified(value, _insertHyperlinks); _insertHyperlinks = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DeleteColumns"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> DeleteColumns
		{
			get { return _deleteColumns; }
			set { OnDeleteColumnsPropertyChanging(ref value, _deleteColumns); SetModified(value, _deleteColumns); _deleteColumns = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DeleteRows"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> DeleteRows
		{
			get { return _deleteRows; }
			set { OnDeleteRowsPropertyChanging(ref value, _deleteRows); SetModified(value, _deleteRows); _deleteRows = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SelectLockedCells"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> SelectLockedCells
		{
			get { return _selectLockedCells; }
			set { OnSelectLockedCellsPropertyChanging(ref value, _selectLockedCells); SetModified(value, _selectLockedCells); _selectLockedCells = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Sort"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> Sort
		{
			get { return _sort; }
			set { OnSortPropertyChanging(ref value, _sort); SetModified(value, _sort); _sort = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFilter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> AutoFilter
		{
			get { return _autoFilter; }
			set { OnAutoFilterPropertyChanging(ref value, _autoFilter); SetModified(value, _autoFilter); _autoFilter = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PivotTables"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> PivotTables
		{
			get { return _pivotTables; }
			set { OnPivotTablesPropertyChanging(ref value, _pivotTables); SetModified(value, _pivotTables); _pivotTables = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SelectUnlockedCells"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.
		/// </summary>
		public Nullable<bool> SelectUnlockedCells
		{
			get { return _selectUnlockedCells; }
			set { OnSelectUnlockedCellsPropertyChanging(ref value, _selectUnlockedCells); SetModified(value, _selectUnlockedCells); _selectUnlockedCells = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPasswordPropertyChanging(ref string modified, string original);
		partial void OnAlgorithmNamePropertyChanging(ref string modified, string original);
		partial void OnHashValuePropertyChanging(ref string modified, string original);
		partial void OnSaltValuePropertyChanging(ref string modified, string original);
		partial void OnSpinCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnSheetPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnObjectsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnScenariosPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFormatCellsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFormatColumnsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFormatRowsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInsertColumnsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInsertRowsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInsertHyperlinksPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDeleteColumnsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDeleteRowsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSelectLockedCellsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSortPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoFilterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPivotTablesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSelectUnlockedCellsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_password = default(string);
			_algorithmName = default(string);
			_hashValue = default(string);
			_saltValue = default(string);
			_spinCount = default(Nullable<uint>);
			_sheet = default(Nullable<bool>);
			_objects = default(Nullable<bool>);
			_scenarios = default(Nullable<bool>);
			_formatCells = default(Nullable<bool>);
			_formatColumns = default(Nullable<bool>);
			_formatRows = default(Nullable<bool>);
			_insertColumns = default(Nullable<bool>);
			_insertRows = default(Nullable<bool>);
			_insertHyperlinks = default(Nullable<bool>);
			_deleteColumns = default(Nullable<bool>);
			_deleteRows = default(Nullable<bool>);
			_selectLockedCells = default(Nullable<bool>);
			_sort = default(Nullable<bool>);
			_autoFilter = default(Nullable<bool>);
			_pivotTables = default(Nullable<bool>);
			_selectUnlockedCells = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_password = Wrapped.Password == null ? null : Wrapped.Password.ToString();
			_algorithmName = Wrapped.AlgorithmName == null ? null : Wrapped.AlgorithmName.ToString();
			_hashValue = Wrapped.HashValue == null ? null : Wrapped.HashValue.ToString();
			_saltValue = Wrapped.SaltValue == null ? null : Wrapped.SaltValue.ToString();
			_spinCount = Wrapped.SpinCount == null ? null : Wrapped.SpinCount.ToNullable();
			_sheet = Wrapped.Sheet == null ? null : Wrapped.Sheet.ToNullable();
			_objects = Wrapped.Objects == null ? null : Wrapped.Objects.ToNullable();
			_scenarios = Wrapped.Scenarios == null ? null : Wrapped.Scenarios.ToNullable();
			_formatCells = Wrapped.FormatCells == null ? null : Wrapped.FormatCells.ToNullable();
			_formatColumns = Wrapped.FormatColumns == null ? null : Wrapped.FormatColumns.ToNullable();
			_formatRows = Wrapped.FormatRows == null ? null : Wrapped.FormatRows.ToNullable();
			_insertColumns = Wrapped.InsertColumns == null ? null : Wrapped.InsertColumns.ToNullable();
			_insertRows = Wrapped.InsertRows == null ? null : Wrapped.InsertRows.ToNullable();
			_insertHyperlinks = Wrapped.InsertHyperlinks == null ? null : Wrapped.InsertHyperlinks.ToNullable();
			_deleteColumns = Wrapped.DeleteColumns == null ? null : Wrapped.DeleteColumns.ToNullable();
			_deleteRows = Wrapped.DeleteRows == null ? null : Wrapped.DeleteRows.ToNullable();
			_selectLockedCells = Wrapped.SelectLockedCells == null ? null : Wrapped.SelectLockedCells.ToNullable();
			_sort = Wrapped.Sort == null ? null : Wrapped.Sort.ToNullable();
			_autoFilter = Wrapped.AutoFilter == null ? null : Wrapped.AutoFilter.ToNullable();
			_pivotTables = Wrapped.PivotTables == null ? null : Wrapped.PivotTables.ToNullable();
			_selectUnlockedCells = Wrapped.SelectUnlockedCells == null ? null : Wrapped.SelectUnlockedCells.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProtection"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetProtection Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetProtection();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Password = _password == null ? null : HexBinaryValue.FromString(_password);
				result.AlgorithmName = _algorithmName == null ? null : StringValue.FromString(_algorithmName);
				result.HashValue = _hashValue == null ? null : Base64BinaryValue.FromString(_hashValue);
				result.SaltValue = _saltValue == null ? null : Base64BinaryValue.FromString(_saltValue);
				result.SpinCount = _spinCount.HasValue ? _spinCount.ToUInt32Value() : null;
				result.Sheet = _sheet.HasValue ? _sheet.ToBooleanValue() : null;
				result.Objects = _objects.HasValue ? _objects.ToBooleanValue() : null;
				result.Scenarios = _scenarios.HasValue ? _scenarios.ToBooleanValue() : null;
				result.FormatCells = _formatCells.HasValue ? _formatCells.ToBooleanValue() : null;
				result.FormatColumns = _formatColumns.HasValue ? _formatColumns.ToBooleanValue() : null;
				result.FormatRows = _formatRows.HasValue ? _formatRows.ToBooleanValue() : null;
				result.InsertColumns = _insertColumns.HasValue ? _insertColumns.ToBooleanValue() : null;
				result.InsertRows = _insertRows.HasValue ? _insertRows.ToBooleanValue() : null;
				result.InsertHyperlinks = _insertHyperlinks.HasValue ? _insertHyperlinks.ToBooleanValue() : null;
				result.DeleteColumns = _deleteColumns.HasValue ? _deleteColumns.ToBooleanValue() : null;
				result.DeleteRows = _deleteRows.HasValue ? _deleteRows.ToBooleanValue() : null;
				result.SelectLockedCells = _selectLockedCells.HasValue ? _selectLockedCells.ToBooleanValue() : null;
				result.Sort = _sort.HasValue ? _sort.ToBooleanValue() : null;
				result.AutoFilter = _autoFilter.HasValue ? _autoFilter.ToBooleanValue() : null;
				result.PivotTables = _pivotTables.HasValue ? _pivotTables.ToBooleanValue() : null;
				result.SelectUnlockedCells = _selectUnlockedCells.HasValue ? _selectUnlockedCells.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ProtectedRangesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ProtectedRangesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ProtectedRangesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ProtectedRangeWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ProtectedRangeWrapperCollection ProtectedRanges { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ProtectedRanges = new ExtremeML.Spreadsheet.ProtectedRangeWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ProtectedRanges = new ExtremeML.Spreadsheet.ProtectedRangeWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ProtectedRanges.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ProtectedRanges;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ProtectedRangeWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ProtectedRange>
	{
		private string _localName;
		private string _password;
		private string _algorithmName;
		private string _hashValue;
		private string _saltValue;
		private Nullable<uint> _spinCount;
		private string _name;
		private string _securityDescriptor;

		/// <summary>
		/// Initializes a new instance of the <see cref="ProtectedRangeWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ProtectedRangeWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ProtectedRange wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Password"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string Password
		{
			get { return _password; }
			set { OnPasswordPropertyChanging(ref value, _password); SetModified(value, _password); _password = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlgorithmName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string AlgorithmName
		{
			get { return _algorithmName; }
			set { OnAlgorithmNamePropertyChanging(ref value, _algorithmName); SetModified(value, _algorithmName); _algorithmName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HashValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string HashValue
		{
			get { return _hashValue; }
			set { OnHashValuePropertyChanging(ref value, _hashValue); SetModified(value, _hashValue); _hashValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SaltValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string SaltValue
		{
			get { return _saltValue; }
			set { OnSaltValuePropertyChanging(ref value, _saltValue); SetModified(value, _saltValue); _saltValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SpinCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public Nullable<uint> SpinCount
		{
			get { return _spinCount; }
			set { OnSpinCountPropertyChanging(ref value, _spinCount); SetModified(value, _spinCount); _spinCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SecurityDescriptor"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.
		/// </summary>
		public string SecurityDescriptor
		{
			get { return _securityDescriptor; }
			set { OnSecurityDescriptorPropertyChanging(ref value, _securityDescriptor); SetModified(value, _securityDescriptor); _securityDescriptor = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPasswordPropertyChanging(ref string modified, string original);
		partial void OnAlgorithmNamePropertyChanging(ref string modified, string original);
		partial void OnHashValuePropertyChanging(ref string modified, string original);
		partial void OnSaltValuePropertyChanging(ref string modified, string original);
		partial void OnSpinCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnSecurityDescriptorPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_password = default(string);
			_algorithmName = default(string);
			_hashValue = default(string);
			_saltValue = default(string);
			_spinCount = default(Nullable<uint>);
			_name = default(string);
			_securityDescriptor = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_password = Wrapped.Password == null ? null : Wrapped.Password.ToString();
			_algorithmName = Wrapped.AlgorithmName == null ? null : Wrapped.AlgorithmName.ToString();
			_hashValue = Wrapped.HashValue == null ? null : Wrapped.HashValue.ToString();
			_saltValue = Wrapped.SaltValue == null ? null : Wrapped.SaltValue.ToString();
			_spinCount = Wrapped.SpinCount == null ? null : Wrapped.SpinCount.ToNullable();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_securityDescriptor = Wrapped.SecurityDescriptor == null ? null : Wrapped.SecurityDescriptor.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ProtectedRange"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ProtectedRange Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ProtectedRange();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Password = _password == null ? null : HexBinaryValue.FromString(_password);
				result.AlgorithmName = _algorithmName == null ? null : StringValue.FromString(_algorithmName);
				result.HashValue = _hashValue == null ? null : Base64BinaryValue.FromString(_hashValue);
				result.SaltValue = _saltValue == null ? null : Base64BinaryValue.FromString(_saltValue);
				result.SpinCount = _spinCount.HasValue ? _spinCount.ToUInt32Value() : null;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.SecurityDescriptor = _securityDescriptor == null ? null : StringValue.FromString(_securityDescriptor);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ScenariosWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Scenarios>
	{
		private string _localName;
		private Nullable<uint> _current;
		private Nullable<uint> _show;

		/// <summary>
		/// Initializes a new instance of the <see cref="ScenariosWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ScenariosWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Scenarios wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Current"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> instance.
		/// </summary>
		public Nullable<uint> Current
		{
			get { return _current; }
			set { OnCurrentPropertyChanging(ref value, _current); SetModified(value, _current); _current = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Show"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> instance.
		/// </summary>
		public Nullable<uint> Show
		{
			get { return _show; }
			set { OnShowPropertyChanging(ref value, _show); SetModified(value, _show); _show = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ScenarioWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ScenarioWrapperCollection Scenarios { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCurrentPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShowPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_current = default(Nullable<uint>);
			_show = default(Nullable<uint>);
			Scenarios = new ExtremeML.Spreadsheet.ScenarioWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_current = Wrapped.Current == null ? null : Wrapped.Current.ToNullable();
			_show = Wrapped.Show == null ? null : Wrapped.Show.ToNullable();
			Scenarios = new ExtremeML.Spreadsheet.ScenarioWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenarios"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Scenarios Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Scenarios();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Current = _current.HasValue ? _current.ToUInt32Value() : null;
				result.Show = _show.HasValue ? _show.ToUInt32Value() : null;
				Scenarios.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Scenarios;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ScenarioWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Scenario>
	{
		private string _localName;
		private string _name;
		private Nullable<bool> _locked;
		private Nullable<bool> _hidden;
		private Nullable<uint> _count;
		private string _user;
		private string _comment;

		/// <summary>
		/// Initializes a new instance of the <see cref="ScenarioWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ScenarioWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Scenario wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Locked"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public Nullable<bool> Locked
		{
			get { return _locked; }
			set { OnLockedPropertyChanging(ref value, _locked); SetModified(value, _locked); _locked = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="User"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public string User
		{
			get { return _user; }
			set { OnUserPropertyChanging(ref value, _user); SetModified(value, _user); _user = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Comment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.
		/// </summary>
		public string Comment
		{
			get { return _comment; }
			set { OnCommentPropertyChanging(ref value, _comment); SetModified(value, _comment); _comment = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.InputCellsWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.InputCellsWrapperCollection InputCellss { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnLockedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnUserPropertyChanging(ref string modified, string original);
		partial void OnCommentPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_locked = default(Nullable<bool>);
			_hidden = default(Nullable<bool>);
			_count = default(Nullable<uint>);
			_user = default(string);
			_comment = default(string);
			InputCellss = new ExtremeML.Spreadsheet.InputCellsWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_locked = Wrapped.Locked == null ? null : Wrapped.Locked.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_user = Wrapped.User == null ? null : Wrapped.User.ToString();
			_comment = Wrapped.Comment == null ? null : Wrapped.Comment.ToString();
			InputCellss = new ExtremeML.Spreadsheet.InputCellsWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Scenario"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Scenario Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Scenario();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Locked = _locked.HasValue ? _locked.ToBooleanValue() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;
				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.User = _user == null ? null : StringValue.FromString(_user);
				result.Comment = _comment == null ? null : StringValue.FromString(_comment);
				InputCellss.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return InputCellss;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class InputCellsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.InputCells>
	{
		private string _localName;
		private string _cellReference;
		private Nullable<bool> _deleted;
		private Nullable<bool> _undone;
		private string _val;
		private Nullable<uint> _numberFormatId;

		/// <summary>
		/// Initializes a new instance of the <see cref="InputCellsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal InputCellsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.InputCells wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public string CellReference
		{
			get { return _cellReference; }
			set { OnCellReferencePropertyChanging(ref value, _cellReference); SetModified(value, _cellReference); _cellReference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Deleted"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public Nullable<bool> Deleted
		{
			get { return _deleted; }
			set { OnDeletedPropertyChanging(ref value, _deleted); SetModified(value, _deleted); _deleted = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Undone"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public Nullable<bool> Undone
		{
			get { return _undone; }
			set { OnUndonePropertyChanging(ref value, _undone); SetModified(value, _undone); _undone = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NumberFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.
		/// </summary>
		public Nullable<uint> NumberFormatId
		{
			get { return _numberFormatId; }
			set { OnNumberFormatIdPropertyChanging(ref value, _numberFormatId); SetModified(value, _numberFormatId); _numberFormatId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCellReferencePropertyChanging(ref string modified, string original);
		partial void OnDeletedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUndonePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnValPropertyChanging(ref string modified, string original);
		partial void OnNumberFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cellReference = default(string);
			_deleted = default(Nullable<bool>);
			_undone = default(Nullable<bool>);
			_val = default(string);
			_numberFormatId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cellReference = Wrapped.CellReference == null ? null : Wrapped.CellReference.ToString();
			_deleted = Wrapped.Deleted == null ? null : Wrapped.Deleted.ToNullable();
			_undone = Wrapped.Undone == null ? null : Wrapped.Undone.ToNullable();
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
			_numberFormatId = Wrapped.NumberFormatId == null ? null : Wrapped.NumberFormatId.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.InputCells"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.InputCells Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.InputCells();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CellReference = _cellReference == null ? null : StringValue.FromString(_cellReference);
				result.Deleted = _deleted.HasValue ? _deleted.ToBooleanValue() : null;
				result.Undone = _undone.HasValue ? _undone.ToBooleanValue() : null;
				result.Val = _val == null ? null : StringValue.FromString(_val);
				result.NumberFormatId = _numberFormatId.HasValue ? _numberFormatId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.AutoFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AutoFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.AutoFilter>
	{
		private string _localName;
		private string _reference;

		/// <summary>
		/// Initializes a new instance of the <see cref="AutoFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.AutoFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AutoFilterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.AutoFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.AutoFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.AutoFilter"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SortStateWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SortStateWrapper SortState { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FilterColumnWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FilterColumnWrapperCollection FilterColumns { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(null, this, Package);
			FilterColumns = new ExtremeML.Spreadsheet.FilterColumnWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			FilterColumns = new ExtremeML.Spreadsheet.FilterColumnWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.SortState>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.AutoFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.AutoFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.AutoFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				FilterColumns.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SortState>();
				result.AppendChild(SortState.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return SortState;
			yield return FilterColumns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SortStateWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SortState>
	{
		private string _localName;
		private Nullable<bool> _columnSort;
		private Nullable<bool> _caseSensitive;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SortMethodValues> _sortMethod;
		private string _reference;

		/// <summary>
		/// Initializes a new instance of the <see cref="SortStateWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SortStateWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SortState wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColumnSort"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.
		/// </summary>
		public Nullable<bool> ColumnSort
		{
			get { return _columnSort; }
			set { OnColumnSortPropertyChanging(ref value, _columnSort); SetModified(value, _columnSort); _columnSort = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CaseSensitive"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.
		/// </summary>
		public Nullable<bool> CaseSensitive
		{
			get { return _caseSensitive; }
			set { OnCaseSensitivePropertyChanging(ref value, _caseSensitive); SetModified(value, _caseSensitive); _caseSensitive = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SortMethod"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SortMethodValues> SortMethod
		{
			get { return _sortMethod; }
			set { OnSortMethodPropertyChanging(ref value, _sortMethod); SetModified(value, _sortMethod); _sortMethod = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Office2010.Excel.SortConditionWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Office2010.Excel.SortConditionWrapperCollection SortConditions { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnColumnSortPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCaseSensitivePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSortMethodPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SortMethodValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SortMethodValues> original);
		partial void OnReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_columnSort = default(Nullable<bool>);
			_caseSensitive = default(Nullable<bool>);
			_sortMethod = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SortMethodValues>);
			_reference = default(string);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			SortConditions = new ExtremeML.Office2010.Excel.SortConditionWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_columnSort = Wrapped.ColumnSort == null ? null : Wrapped.ColumnSort.ToNullable();
			_caseSensitive = Wrapped.CaseSensitive == null ? null : Wrapped.CaseSensitive.ToNullable();
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			if (Wrapped.SortMethod != null) _sortMethod = Wrapped.SortMethod;
			SortConditions = new ExtremeML.Office2010.Excel.SortConditionWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SortState"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SortState Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SortState();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SortMethod = _sortMethod;
				result.ColumnSort = _columnSort.HasValue ? _columnSort.ToBooleanValue() : null;
				result.CaseSensitive = _caseSensitive.HasValue ? _caseSensitive.ToBooleanValue() : null;
				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				SortConditions.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return SortConditions;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SortConditionWrapper : ElementWrapper<DocumentFormat.OpenXml.Office2010.Excel.SortCondition>
	{
		private string _localName;
		private Nullable<bool> _descending;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SortByValues> _sortBy;
		private string _reference;
		private string _customList;
		private Nullable<uint> _formatId;
		private Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> _iconSet;
		private Nullable<uint> _iconId;

		/// <summary>
		/// Initializes a new instance of the <see cref="SortConditionWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SortConditionWrapper(
			DocumentFormat.OpenXml.Office2010.Excel.SortCondition wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Descending"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public Nullable<bool> Descending
		{
			get { return _descending; }
			set { OnDescendingPropertyChanging(ref value, _descending); SetModified(value, _descending); _descending = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SortBy"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SortByValues> SortBy
		{
			get { return _sortBy; }
			set { OnSortByPropertyChanging(ref value, _sortBy); SetModified(value, _sortBy); _sortBy = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomList"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public string CustomList
		{
			get { return _customList; }
			set { OnCustomListPropertyChanging(ref value, _customList); SetModified(value, _customList); _customList = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> IconSet
		{
			get { return _iconSet; }
			set { OnIconSetPropertyChanging(ref value, _iconSet); SetModified(value, _iconSet); _iconSet = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.
		/// </summary>
		public Nullable<uint> IconId
		{
			get { return _iconId; }
			set { OnIconIdPropertyChanging(ref value, _iconId); SetModified(value, _iconId); _iconId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDescendingPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSortByPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SortByValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SortByValues> original);
		partial void OnReferencePropertyChanging(ref string modified, string original);
		partial void OnCustomListPropertyChanging(ref string modified, string original);
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIconSetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> modified, Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> original);
		partial void OnIconIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_descending = default(Nullable<bool>);
			_sortBy = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SortByValues>);
			_reference = default(string);
			_customList = default(string);
			_formatId = default(Nullable<uint>);
			_iconSet = default(Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues>);
			_iconId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_descending = Wrapped.Descending == null ? null : Wrapped.Descending.ToNullable();
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			_customList = Wrapped.CustomList == null ? null : Wrapped.CustomList.ToString();
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			_iconId = Wrapped.IconId == null ? null : Wrapped.IconId.ToNullable();
			if (Wrapped.SortBy != null) _sortBy = Wrapped.SortBy;
			if (Wrapped.IconSet != null) _iconSet = Wrapped.IconSet;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Office2010.Excel.SortCondition"/> instance.</returns>
		internal DocumentFormat.OpenXml.Office2010.Excel.SortCondition Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Office2010.Excel.SortCondition();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SortBy = _sortBy;
				result.IconSet = _iconSet;
				result.Descending = _descending.HasValue ? _descending.ToBooleanValue() : null;
				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				result.CustomList = _customList == null ? null : StringValue.FromString(_customList);
				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;
				result.IconId = _iconId.HasValue ? _iconId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FilterColumnWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FilterColumn>
	{
		private string _localName;
		private Nullable<uint> _columnId;
		private Nullable<bool> _hiddenButton;
		private Nullable<bool> _showButton;

		/// <summary>
		/// Initializes a new instance of the <see cref="FilterColumnWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FilterColumnWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FilterColumn wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColumnId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> instance.
		/// </summary>
		public Nullable<uint> ColumnId
		{
			get { return _columnId; }
			set { OnColumnIdPropertyChanging(ref value, _columnId); SetModified(value, _columnId); _columnId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HiddenButton"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> instance.
		/// </summary>
		public Nullable<bool> HiddenButton
		{
			get { return _hiddenButton; }
			set { OnHiddenButtonPropertyChanging(ref value, _hiddenButton); SetModified(value, _hiddenButton); _hiddenButton = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowButton"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> instance.
		/// </summary>
		public Nullable<bool> ShowButton
		{
			get { return _showButton; }
			set { OnShowButtonPropertyChanging(ref value, _showButton); SetModified(value, _showButton); _showButton = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FiltersWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FiltersWrapper Filters { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.Top10Wrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.Top10Wrapper Top10 { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Office2010.Excel.CustomFiltersWrapper"/> instance.
		/// </summary>
		public ExtremeML.Office2010.Excel.CustomFiltersWrapper CustomFilters14 { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomFiltersWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomFiltersWrapper CustomFilters { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DynamicFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DynamicFilterWrapper DynamicFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorFilterWrapper ColorFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Office2010.Excel.IconFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Office2010.Excel.IconFilterWrapper IconFilter14 { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.IconFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.IconFilterWrapper IconFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnColumnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHiddenButtonPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowButtonPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_columnId = default(Nullable<uint>);
			_hiddenButton = default(Nullable<bool>);
			_showButton = default(Nullable<bool>);
			Filters = new ExtremeML.Spreadsheet.FiltersWrapper(null, this, Package);
			Top10 = new ExtremeML.Spreadsheet.Top10Wrapper(null, this, Package);
			CustomFilters14 = new ExtremeML.Office2010.Excel.CustomFiltersWrapper(null, this, Package);
			CustomFilters = new ExtremeML.Spreadsheet.CustomFiltersWrapper(null, this, Package);
			DynamicFilter = new ExtremeML.Spreadsheet.DynamicFilterWrapper(null, this, Package);
			ColorFilter = new ExtremeML.Spreadsheet.ColorFilterWrapper(null, this, Package);
			IconFilter14 = new ExtremeML.Office2010.Excel.IconFilterWrapper(null, this, Package);
			IconFilter = new ExtremeML.Spreadsheet.IconFilterWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_columnId = Wrapped.ColumnId == null ? null : Wrapped.ColumnId.ToNullable();
			_hiddenButton = Wrapped.HiddenButton == null ? null : Wrapped.HiddenButton.ToNullable();
			_showButton = Wrapped.ShowButton == null ? null : Wrapped.ShowButton.ToNullable();
			Filters = new ExtremeML.Spreadsheet.FiltersWrapper(Wrapped.Filters, this, Package);
			Top10 = new ExtremeML.Spreadsheet.Top10Wrapper(Wrapped.Top10, this, Package);
			CustomFilters14 = new ExtremeML.Office2010.Excel.CustomFiltersWrapper(Wrapped.CustomFilters14, this, Package);
			CustomFilters = new ExtremeML.Spreadsheet.CustomFiltersWrapper(Wrapped.CustomFilters, this, Package);
			DynamicFilter = new ExtremeML.Spreadsheet.DynamicFilterWrapper(Wrapped.DynamicFilter, this, Package);
			ColorFilter = new ExtremeML.Spreadsheet.ColorFilterWrapper(Wrapped.ColorFilter, this, Package);
			IconFilter14 = new ExtremeML.Office2010.Excel.IconFilterWrapper(Wrapped.IconFilter14, this, Package);
			IconFilter = new ExtremeML.Spreadsheet.IconFilterWrapper(Wrapped.IconFilter, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FilterColumn"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FilterColumn Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FilterColumn();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ColumnId = _columnId.HasValue ? _columnId.ToUInt32Value() : null;
				result.HiddenButton = _hiddenButton.HasValue ? _hiddenButton.ToBooleanValue() : null;
				result.ShowButton = _showButton.HasValue ? _showButton.ToBooleanValue() : null;
				result.Filters = Filters.Recompose();
				result.Top10 = Top10.Recompose();
				result.CustomFilters14 = CustomFilters14.Recompose();
				result.CustomFilters = CustomFilters.Recompose();
				result.DynamicFilter = DynamicFilter.Recompose();
				result.ColorFilter = ColorFilter.Recompose();
				result.IconFilter14 = IconFilter14.Recompose();
				result.IconFilter = IconFilter.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Filters;
			yield return Top10;
			yield return CustomFilters14;
			yield return CustomFilters;
			yield return DynamicFilter;
			yield return ColorFilter;
			yield return IconFilter14;
			yield return IconFilter;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FiltersWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Filters>
	{
		private string _localName;
		private Nullable<bool> _blank;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CalendarValues> _calendarType;

		/// <summary>
		/// Initializes a new instance of the <see cref="FiltersWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FiltersWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Filters wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Blank"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> instance.
		/// </summary>
		public Nullable<bool> Blank
		{
			get { return _blank; }
			set { OnBlankPropertyChanging(ref value, _blank); SetModified(value, _blank); _blank = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalendarType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CalendarValues> CalendarType
		{
			get { return _calendarType; }
			set { OnCalendarTypePropertyChanging(ref value, _calendarType); SetModified(value, _calendarType); _calendarType = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Office2010.Excel.FilterWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Office2010.Excel.FilterWrapperCollection Filters { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DateGroupItemWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DateGroupItemWrapperCollection DateGroupItems { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnBlankPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCalendarTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CalendarValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CalendarValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_blank = default(Nullable<bool>);
			_calendarType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CalendarValues>);
			Filters = new ExtremeML.Office2010.Excel.FilterWrapperCollection(null, this, Package);
			DateGroupItems = new ExtremeML.Spreadsheet.DateGroupItemWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_blank = Wrapped.Blank == null ? null : Wrapped.Blank.ToNullable();
			if (Wrapped.CalendarType != null) _calendarType = Wrapped.CalendarType;
			Filters = new ExtremeML.Office2010.Excel.FilterWrapperCollection(Wrapped, this, Package);
			DateGroupItems = new ExtremeML.Spreadsheet.DateGroupItemWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Filters"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Filters Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Filters();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CalendarType = _calendarType;
				result.Blank = _blank.HasValue ? _blank.ToBooleanValue() : null;
				Filters.Recompose(result);
				DateGroupItems.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Filters;
			yield return DateGroupItems;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Office2010.Excel.Filter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Office2010.Excel.Filter>
	{
		private string _localName;
		private string _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="FilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Office2010.Excel.Filter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FilterWrapper(
			DocumentFormat.OpenXml.Office2010.Excel.Filter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.Filter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.Filter"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnValPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_val = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Office2010.Excel.Filter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Office2010.Excel.Filter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Office2010.Excel.Filter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Val = _val == null ? null : StringValue.FromString(_val);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DateGroupItemWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DateGroupItem>
	{
		private string _localName;
		private Nullable<uint> _year;
		private Nullable<uint> _month;
		private Nullable<uint> _day;
		private Nullable<uint> _hour;
		private Nullable<uint> _minute;
		private Nullable<uint> _second;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DateTimeGroupingValues> _dateTimeGrouping;

		/// <summary>
		/// Initializes a new instance of the <see cref="DateGroupItemWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DateGroupItemWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DateGroupItem wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Year"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Year
		{
			get { return _year; }
			set { OnYearPropertyChanging(ref value, _year); SetModified(value, _year); _year = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Month"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Month
		{
			get { return _month; }
			set { OnMonthPropertyChanging(ref value, _month); SetModified(value, _month); _month = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Day"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Day
		{
			get { return _day; }
			set { OnDayPropertyChanging(ref value, _day); SetModified(value, _day); _day = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hour"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Hour
		{
			get { return _hour; }
			set { OnHourPropertyChanging(ref value, _hour); SetModified(value, _hour); _hour = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Minute"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Minute
		{
			get { return _minute; }
			set { OnMinutePropertyChanging(ref value, _minute); SetModified(value, _minute); _minute = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Second"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<uint> Second
		{
			get { return _second; }
			set { OnSecondPropertyChanging(ref value, _second); SetModified(value, _second); _second = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DateTimeGrouping"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DateTimeGroupingValues> DateTimeGrouping
		{
			get { return _dateTimeGrouping; }
			set { OnDateTimeGroupingPropertyChanging(ref value, _dateTimeGrouping); SetModified(value, _dateTimeGrouping); _dateTimeGrouping = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnYearPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMonthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDayPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHourPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMinutePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnSecondPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDateTimeGroupingPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DateTimeGroupingValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DateTimeGroupingValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_year = default(Nullable<uint>);
			_month = default(Nullable<uint>);
			_day = default(Nullable<uint>);
			_hour = default(Nullable<uint>);
			_minute = default(Nullable<uint>);
			_second = default(Nullable<uint>);
			_dateTimeGrouping = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DateTimeGroupingValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_year = Wrapped.Year == null ? null : Wrapped.Year.ToNullable();
			_month = Wrapped.Month == null ? null : Wrapped.Month.ToNullable();
			_day = Wrapped.Day == null ? null : Wrapped.Day.ToNullable();
			_hour = Wrapped.Hour == null ? null : Wrapped.Hour.ToNullable();
			_minute = Wrapped.Minute == null ? null : Wrapped.Minute.ToNullable();
			_second = Wrapped.Second == null ? null : Wrapped.Second.ToNullable();
			if (Wrapped.DateTimeGrouping != null) _dateTimeGrouping = Wrapped.DateTimeGrouping;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DateGroupItem"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DateGroupItem Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DateGroupItem();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DateTimeGrouping = _dateTimeGrouping;
				result.Year = _year.HasValue ? _year.ToUInt16Value() : null;
				result.Month = _month.HasValue ? _month.ToUInt16Value() : null;
				result.Day = _day.HasValue ? _day.ToUInt16Value() : null;
				result.Hour = _hour.HasValue ? _hour.ToUInt16Value() : null;
				result.Minute = _minute.HasValue ? _minute.ToUInt16Value() : null;
				result.Second = _second.HasValue ? _second.ToUInt16Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Top10Wrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Top10>
	{
		private string _localName;
		private Nullable<bool> _top;
		private Nullable<bool> _percent;
		private Nullable<double> _val;
		private Nullable<double> _filterValue;

		/// <summary>
		/// Initializes a new instance of the <see cref="Top10Wrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Top10Wrapper(
			DocumentFormat.OpenXml.Spreadsheet.Top10 wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Top"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.
		/// </summary>
		public Nullable<bool> Top
		{
			get { return _top; }
			set { OnTopPropertyChanging(ref value, _top); SetModified(value, _top); _top = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Percent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.
		/// </summary>
		public Nullable<bool> Percent
		{
			get { return _percent; }
			set { OnPercentPropertyChanging(ref value, _percent); SetModified(value, _percent); _percent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.
		/// </summary>
		public Nullable<double> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FilterValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.
		/// </summary>
		public Nullable<double> FilterValue
		{
			get { return _filterValue; }
			set { OnFilterValuePropertyChanging(ref value, _filterValue); SetModified(value, _filterValue); _filterValue = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTopPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPercentPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnValPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnFilterValuePropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_top = default(Nullable<bool>);
			_percent = default(Nullable<bool>);
			_val = default(Nullable<double>);
			_filterValue = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_top = Wrapped.Top == null ? null : Wrapped.Top.ToNullable();
			_percent = Wrapped.Percent == null ? null : Wrapped.Percent.ToNullable();
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
			_filterValue = Wrapped.FilterValue == null ? null : Wrapped.FilterValue.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Top10"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Top10 Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Top10();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Top = _top.HasValue ? _top.ToBooleanValue() : null;
				result.Percent = _percent.HasValue ? _percent.ToBooleanValue() : null;
				result.Val = _val.HasValue ? _val.ToDoubleValue() : null;
				result.FilterValue = _filterValue.HasValue ? _filterValue.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Office2010.Excel.CustomFilters"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomFiltersWrapper : ElementWrapper<DocumentFormat.OpenXml.Office2010.Excel.CustomFilters>
	{
		private string _localName;
		private Nullable<bool> _and;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomFiltersWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Office2010.Excel.CustomFilters"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomFiltersWrapper(
			DocumentFormat.OpenXml.Office2010.Excel.CustomFilters wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.CustomFilters"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="And"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.CustomFilters"/> instance.
		/// </summary>
		public Nullable<bool> And
		{
			get { return _and; }
			set { OnAndPropertyChanging(ref value, _and); SetModified(value, _and); _and = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAndPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_and = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_and = Wrapped.And == null ? null : Wrapped.And.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Office2010.Excel.CustomFilters"/> instance.</returns>
		internal DocumentFormat.OpenXml.Office2010.Excel.CustomFilters Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Office2010.Excel.CustomFilters();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.And = _and.HasValue ? _and.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilters"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomFiltersWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomFilters>
	{
		private string _localName;
		private Nullable<bool> _and;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomFiltersWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilters"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomFiltersWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomFilters wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilters"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="And"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilters"/> instance.
		/// </summary>
		public Nullable<bool> And
		{
			get { return _and; }
			set { OnAndPropertyChanging(ref value, _and); SetModified(value, _and); _and = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomFilterWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomFilterWrapperCollection CustomFilters { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAndPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_and = default(Nullable<bool>);
			CustomFilters = new ExtremeML.Spreadsheet.CustomFilterWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_and = Wrapped.And == null ? null : Wrapped.And.ToNullable();
			CustomFilters = new ExtremeML.Spreadsheet.CustomFilterWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilters"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomFilters Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomFilters();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.And = _and.HasValue ? _and.ToBooleanValue() : null;
				CustomFilters.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CustomFilters;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomFilter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.FilterOperatorValues> _operator;
		private string _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomFilterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Operator"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.FilterOperatorValues> Operator
		{
			get { return _operator; }
			set { OnOperatorPropertyChanging(ref value, _operator); SetModified(value, _operator); _operator = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnOperatorPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.FilterOperatorValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.FilterOperatorValues> original);
		partial void OnValPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_operator = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.FilterOperatorValues>);
			_val = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
			if (Wrapped.Operator != null) _operator = Wrapped.Operator;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Operator = _operator;
				result.Val = _val == null ? null : StringValue.FromString(_val);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DynamicFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DynamicFilter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DynamicFilterValues> _type;
		private Nullable<double> _val;
		private Nullable<double> _maxVal;
		private Nullable<System.DateTime> _valIso;
		private Nullable<System.DateTime> _maxValIso;

		/// <summary>
		/// Initializes a new instance of the <see cref="DynamicFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DynamicFilterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DynamicFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DynamicFilterValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public Nullable<double> Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MaxVal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public Nullable<double> MaxVal
		{
			get { return _maxVal; }
			set { OnMaxValPropertyChanging(ref value, _maxVal); SetModified(value, _maxVal); _maxVal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ValIso"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public Nullable<System.DateTime> ValIso
		{
			get { return _valIso; }
			set { OnValIsoPropertyChanging(ref value, _valIso); SetModified(value, _valIso); _valIso = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MaxValIso"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.
		/// </summary>
		public Nullable<System.DateTime> MaxValIso
		{
			get { return _maxValIso; }
			set { OnMaxValIsoPropertyChanging(ref value, _maxValIso); SetModified(value, _maxValIso); _maxValIso = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DynamicFilterValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DynamicFilterValues> original);
		partial void OnValPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnMaxValPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnValIsoPropertyChanging(ref Nullable<System.DateTime> modified, Nullable<System.DateTime> original);
		partial void OnMaxValIsoPropertyChanging(ref Nullable<System.DateTime> modified, Nullable<System.DateTime> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DynamicFilterValues>);
			_val = default(Nullable<double>);
			_maxVal = default(Nullable<double>);
			_valIso = default(Nullable<System.DateTime>);
			_maxValIso = default(Nullable<System.DateTime>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToNullable();
			_maxVal = Wrapped.MaxVal == null ? null : Wrapped.MaxVal.ToNullable();
			_valIso = Wrapped.ValIso == null ? null : Wrapped.ValIso.ToNullable();
			_maxValIso = Wrapped.MaxValIso == null ? null : Wrapped.MaxValIso.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DynamicFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DynamicFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DynamicFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Val = _val.HasValue ? _val.ToDoubleValue() : null;
				result.MaxVal = _maxVal.HasValue ? _maxVal.ToDoubleValue() : null;
				result.ValIso = _valIso.HasValue ? _valIso.ToDateTimeValue() : null;
				result.MaxValIso = _maxValIso.HasValue ? _maxValIso.ToDateTimeValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ColorFilter>
	{
		private string _localName;
		private Nullable<uint> _formatId;
		private Nullable<bool> _cellColor;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorFilterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ColorFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellColor"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> instance.
		/// </summary>
		public Nullable<bool> CellColor
		{
			get { return _cellColor; }
			set { OnCellColorPropertyChanging(ref value, _cellColor); SetModified(value, _cellColor); _cellColor = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCellColorPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_formatId = default(Nullable<uint>);
			_cellColor = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			_cellColor = Wrapped.CellColor == null ? null : Wrapped.CellColor.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ColorFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ColorFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;
				result.CellColor = _cellColor.HasValue ? _cellColor.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IconFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Office2010.Excel.IconFilter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> _iconSet;
		private Nullable<uint> _iconId;

		/// <summary>
		/// Initializes a new instance of the <see cref="IconFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IconFilterWrapper(
			DocumentFormat.OpenXml.Office2010.Excel.IconFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> IconSet
		{
			get { return _iconSet; }
			set { OnIconSetPropertyChanging(ref value, _iconSet); SetModified(value, _iconSet); _iconSet = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> instance.
		/// </summary>
		public Nullable<uint> IconId
		{
			get { return _iconId; }
			set { OnIconIdPropertyChanging(ref value, _iconId); SetModified(value, _iconId); _iconId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIconSetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> modified, Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues> original);
		partial void OnIconIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_iconSet = default(Nullable<DocumentFormat.OpenXml.Office2010.Excel.IconSetTypeValues>);
			_iconId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_iconId = Wrapped.IconId == null ? null : Wrapped.IconId.ToNullable();
			if (Wrapped.IconSet != null) _iconSet = Wrapped.IconSet;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Office2010.Excel.IconFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Office2010.Excel.IconFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Office2010.Excel.IconFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.IconSet = _iconSet;
				result.IconId = _iconId.HasValue ? _iconId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IconFilterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.IconFilter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> _iconSet;
		private Nullable<uint> _iconId;

		/// <summary>
		/// Initializes a new instance of the <see cref="IconFilterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IconFilterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.IconFilter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconSet"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> IconSet
		{
			get { return _iconSet; }
			set { OnIconSetPropertyChanging(ref value, _iconSet); SetModified(value, _iconSet); _iconSet = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> instance.
		/// </summary>
		public Nullable<uint> IconId
		{
			get { return _iconId; }
			set { OnIconIdPropertyChanging(ref value, _iconId); SetModified(value, _iconId); _iconId = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIconSetPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> original);
		partial void OnIconIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_iconSet = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues>);
			_iconId = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_iconId = Wrapped.IconId == null ? null : Wrapped.IconId.ToNullable();
			if (Wrapped.IconSet != null) _iconSet = Wrapped.IconSet;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.IconFilter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.IconFilter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.IconFilter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.IconSet = _iconSet;
				result.IconId = _iconId.HasValue ? _iconId.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataConsolidateWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DataConsolidate>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataConsolidateFunctionValues> _function;
		private Nullable<bool> _leftLabels;
		private Nullable<bool> _startLabels;
		private Nullable<bool> _topLabels;
		private Nullable<bool> _link;

		/// <summary>
		/// Initializes a new instance of the <see cref="DataConsolidateWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataConsolidateWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DataConsolidate wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Function"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataConsolidateFunctionValues> Function
		{
			get { return _function; }
			set { OnFunctionPropertyChanging(ref value, _function); SetModified(value, _function); _function = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LeftLabels"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public Nullable<bool> LeftLabels
		{
			get { return _leftLabels; }
			set { OnLeftLabelsPropertyChanging(ref value, _leftLabels); SetModified(value, _leftLabels); _leftLabels = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StartLabels"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public Nullable<bool> StartLabels
		{
			get { return _startLabels; }
			set { OnStartLabelsPropertyChanging(ref value, _startLabels); SetModified(value, _startLabels); _startLabels = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TopLabels"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public Nullable<bool> TopLabels
		{
			get { return _topLabels; }
			set { OnTopLabelsPropertyChanging(ref value, _topLabels); SetModified(value, _topLabels); _topLabels = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Link"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.
		/// </summary>
		public Nullable<bool> Link
		{
			get { return _link; }
			set { OnLinkPropertyChanging(ref value, _link); SetModified(value, _link); _link = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DataReferencesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DataReferencesWrapper DataReferences { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnFunctionPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataConsolidateFunctionValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataConsolidateFunctionValues> original);
		partial void OnLeftLabelsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnStartLabelsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTopLabelsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnLinkPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_function = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataConsolidateFunctionValues>);
			_leftLabels = default(Nullable<bool>);
			_startLabels = default(Nullable<bool>);
			_topLabels = default(Nullable<bool>);
			_link = default(Nullable<bool>);
			DataReferences = new ExtremeML.Spreadsheet.DataReferencesWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_leftLabels = Wrapped.LeftLabels == null ? null : Wrapped.LeftLabels.ToNullable();
			_startLabels = Wrapped.StartLabels == null ? null : Wrapped.StartLabels.ToNullable();
			_topLabels = Wrapped.TopLabels == null ? null : Wrapped.TopLabels.ToNullable();
			_link = Wrapped.Link == null ? null : Wrapped.Link.ToNullable();
			if (Wrapped.Function != null) _function = Wrapped.Function;
			DataReferences = new ExtremeML.Spreadsheet.DataReferencesWrapper(Wrapped.DataReferences, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DataConsolidate"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DataConsolidate Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DataConsolidate();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Function = _function;
				result.LeftLabels = _leftLabels.HasValue ? _leftLabels.ToBooleanValue() : null;
				result.StartLabels = _startLabels.HasValue ? _startLabels.ToBooleanValue() : null;
				result.TopLabels = _topLabels.HasValue ? _topLabels.ToBooleanValue() : null;
				result.Link = _link.HasValue ? _link.ToBooleanValue() : null;
				result.DataReferences = DataReferences.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DataReferences;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DataReferences"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataReferencesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DataReferences>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="DataReferencesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DataReferences"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataReferencesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DataReferences wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataReferences"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataReferences"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DataReferences"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DataReferences Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DataReferences();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomSheetViewsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomSheetViewsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomSheetViewsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomSheetViewWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomSheetViewWrapperCollection CustomSheetViews { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CustomSheetViews = new ExtremeML.Spreadsheet.CustomSheetViewWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CustomSheetViews = new ExtremeML.Spreadsheet.CustomSheetViewWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomSheetViews();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CustomSheetViews.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CustomSheetViews;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomSheetViewWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomSheetView>
	{
		private string _localName;
		private string _guid;
		private Nullable<uint> _scale;
		private Nullable<uint> _colorId;
		private Nullable<bool> _showPageBreaks;
		private Nullable<bool> _showFormulas;
		private Nullable<bool> _showGridLines;
		private Nullable<bool> _showRowColumn;
		private Nullable<bool> _outlineSymbols;
		private Nullable<bool> _zeroValues;
		private Nullable<bool> _fitToPage;
		private Nullable<bool> _printArea;
		private Nullable<bool> _filter;
		private Nullable<bool> _showAutoFilter;
		private Nullable<bool> _hiddenRows;
		private Nullable<bool> _hiddenColumns;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> _state;
		private Nullable<bool> _filterUnique;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> _view;
		private Nullable<bool> _showRuler;
		private string _topLeftCell;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomSheetViewWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomSheetViewWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomSheetView wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Guid"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public string Guid
		{
			get { return _guid; }
			set { OnGuidPropertyChanging(ref value, _guid); SetModified(value, _guid); _guid = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Scale"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<uint> Scale
		{
			get { return _scale; }
			set { OnScalePropertyChanging(ref value, _scale); SetModified(value, _scale); _scale = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColorId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<uint> ColorId
		{
			get { return _colorId; }
			set { OnColorIdPropertyChanging(ref value, _colorId); SetModified(value, _colorId); _colorId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowPageBreaks"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowPageBreaks
		{
			get { return _showPageBreaks; }
			set { OnShowPageBreaksPropertyChanging(ref value, _showPageBreaks); SetModified(value, _showPageBreaks); _showPageBreaks = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowFormulas"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowFormulas
		{
			get { return _showFormulas; }
			set { OnShowFormulasPropertyChanging(ref value, _showFormulas); SetModified(value, _showFormulas); _showFormulas = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowGridLines"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowGridLines
		{
			get { return _showGridLines; }
			set { OnShowGridLinesPropertyChanging(ref value, _showGridLines); SetModified(value, _showGridLines); _showGridLines = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowRowColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowRowColumn
		{
			get { return _showRowColumn; }
			set { OnShowRowColumnPropertyChanging(ref value, _showRowColumn); SetModified(value, _showRowColumn); _showRowColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineSymbols"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> OutlineSymbols
		{
			get { return _outlineSymbols; }
			set { OnOutlineSymbolsPropertyChanging(ref value, _outlineSymbols); SetModified(value, _outlineSymbols); _outlineSymbols = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZeroValues"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ZeroValues
		{
			get { return _zeroValues; }
			set { OnZeroValuesPropertyChanging(ref value, _zeroValues); SetModified(value, _zeroValues); _zeroValues = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FitToPage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> FitToPage
		{
			get { return _fitToPage; }
			set { OnFitToPagePropertyChanging(ref value, _fitToPage); SetModified(value, _fitToPage); _fitToPage = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PrintArea"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> PrintArea
		{
			get { return _printArea; }
			set { OnPrintAreaPropertyChanging(ref value, _printArea); SetModified(value, _printArea); _printArea = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Filter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> Filter
		{
			get { return _filter; }
			set { OnFilterPropertyChanging(ref value, _filter); SetModified(value, _filter); _filter = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowAutoFilter"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowAutoFilter
		{
			get { return _showAutoFilter; }
			set { OnShowAutoFilterPropertyChanging(ref value, _showAutoFilter); SetModified(value, _showAutoFilter); _showAutoFilter = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HiddenRows"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> HiddenRows
		{
			get { return _hiddenRows; }
			set { OnHiddenRowsPropertyChanging(ref value, _hiddenRows); SetModified(value, _hiddenRows); _hiddenRows = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HiddenColumns"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> HiddenColumns
		{
			get { return _hiddenColumns; }
			set { OnHiddenColumnsPropertyChanging(ref value, _hiddenColumns); SetModified(value, _hiddenColumns); _hiddenColumns = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="State"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> State
		{
			get { return _state; }
			set { OnStatePropertyChanging(ref value, _state); SetModified(value, _state); _state = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FilterUnique"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> FilterUnique
		{
			get { return _filterUnique; }
			set { OnFilterUniquePropertyChanging(ref value, _filterUnique); SetModified(value, _filterUnique); _filterUnique = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="View"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> View
		{
			get { return _view; }
			set { OnViewPropertyChanging(ref value, _view); SetModified(value, _view); _view = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowRuler"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public Nullable<bool> ShowRuler
		{
			get { return _showRuler; }
			set { OnShowRulerPropertyChanging(ref value, _showRuler); SetModified(value, _showRuler); _showRuler = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TopLeftCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.
		/// </summary>
		public string TopLeftCell
		{
			get { return _topLeftCell; }
			set { OnTopLeftCellPropertyChanging(ref value, _topLeftCell); SetModified(value, _topLeftCell); _topLeftCell = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PaneWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PaneWrapper Pane { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SelectionWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SelectionWrapper Selection { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RowBreaksWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RowBreaksWrapper RowBreaks { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColumnBreaksWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColumnBreaksWrapper ColumnBreaks { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PageMarginsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PageMarginsWrapper PageMargins { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PrintOptionsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PrintOptionsWrapper PrintOptions { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PageSetupWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PageSetupWrapper PageSetup { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.HeaderFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.HeaderFooterWrapper HeaderFooter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AutoFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AutoFilterWrapper AutoFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnGuidPropertyChanging(ref string modified, string original);
		partial void OnScalePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnColorIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShowPageBreaksPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowFormulasPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowGridLinesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowRowColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlineSymbolsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnZeroValuesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFitToPagePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPrintAreaPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFilterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowAutoFilterPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHiddenRowsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHiddenColumnsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnStatePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues> original);
		partial void OnFilterUniquePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnViewPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues> original);
		partial void OnShowRulerPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTopLeftCellPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_guid = default(string);
			_scale = default(Nullable<uint>);
			_colorId = default(Nullable<uint>);
			_showPageBreaks = default(Nullable<bool>);
			_showFormulas = default(Nullable<bool>);
			_showGridLines = default(Nullable<bool>);
			_showRowColumn = default(Nullable<bool>);
			_outlineSymbols = default(Nullable<bool>);
			_zeroValues = default(Nullable<bool>);
			_fitToPage = default(Nullable<bool>);
			_printArea = default(Nullable<bool>);
			_filter = default(Nullable<bool>);
			_showAutoFilter = default(Nullable<bool>);
			_hiddenRows = default(Nullable<bool>);
			_hiddenColumns = default(Nullable<bool>);
			_state = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetStateValues>);
			_filterUnique = default(Nullable<bool>);
			_view = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.SheetViewValues>);
			_showRuler = default(Nullable<bool>);
			_topLeftCell = default(string);
			Pane = new ExtremeML.Spreadsheet.PaneWrapper(null, this, Package);
			Selection = new ExtremeML.Spreadsheet.SelectionWrapper(null, this, Package);
			RowBreaks = new ExtremeML.Spreadsheet.RowBreaksWrapper(null, this, Package);
			ColumnBreaks = new ExtremeML.Spreadsheet.ColumnBreaksWrapper(null, this, Package);
			PageMargins = new ExtremeML.Spreadsheet.PageMarginsWrapper(null, this, Package);
			PrintOptions = new ExtremeML.Spreadsheet.PrintOptionsWrapper(null, this, Package);
			PageSetup = new ExtremeML.Spreadsheet.PageSetupWrapper(null, this, Package);
			HeaderFooter = new ExtremeML.Spreadsheet.HeaderFooterWrapper(null, this, Package);
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_guid = Wrapped.Guid == null ? null : Wrapped.Guid.ToString();
			_scale = Wrapped.Scale == null ? null : Wrapped.Scale.ToNullable();
			_colorId = Wrapped.ColorId == null ? null : Wrapped.ColorId.ToNullable();
			_showPageBreaks = Wrapped.ShowPageBreaks == null ? null : Wrapped.ShowPageBreaks.ToNullable();
			_showFormulas = Wrapped.ShowFormulas == null ? null : Wrapped.ShowFormulas.ToNullable();
			_showGridLines = Wrapped.ShowGridLines == null ? null : Wrapped.ShowGridLines.ToNullable();
			_showRowColumn = Wrapped.ShowRowColumn == null ? null : Wrapped.ShowRowColumn.ToNullable();
			_outlineSymbols = Wrapped.OutlineSymbols == null ? null : Wrapped.OutlineSymbols.ToNullable();
			_zeroValues = Wrapped.ZeroValues == null ? null : Wrapped.ZeroValues.ToNullable();
			_fitToPage = Wrapped.FitToPage == null ? null : Wrapped.FitToPage.ToNullable();
			_printArea = Wrapped.PrintArea == null ? null : Wrapped.PrintArea.ToNullable();
			_filter = Wrapped.Filter == null ? null : Wrapped.Filter.ToNullable();
			_showAutoFilter = Wrapped.ShowAutoFilter == null ? null : Wrapped.ShowAutoFilter.ToNullable();
			_hiddenRows = Wrapped.HiddenRows == null ? null : Wrapped.HiddenRows.ToNullable();
			_hiddenColumns = Wrapped.HiddenColumns == null ? null : Wrapped.HiddenColumns.ToNullable();
			_filterUnique = Wrapped.FilterUnique == null ? null : Wrapped.FilterUnique.ToNullable();
			_showRuler = Wrapped.ShowRuler == null ? null : Wrapped.ShowRuler.ToNullable();
			_topLeftCell = Wrapped.TopLeftCell == null ? null : Wrapped.TopLeftCell.ToString();
			if (Wrapped.State != null) _state = Wrapped.State;
			if (Wrapped.View != null) _view = Wrapped.View;
			Pane = new ExtremeML.Spreadsheet.PaneWrapper(Wrapped.Pane, this, Package);
			Selection = new ExtremeML.Spreadsheet.SelectionWrapper(Wrapped.Selection, this, Package);
			RowBreaks = new ExtremeML.Spreadsheet.RowBreaksWrapper(Wrapped.RowBreaks, this, Package);
			ColumnBreaks = new ExtremeML.Spreadsheet.ColumnBreaksWrapper(Wrapped.ColumnBreaks, this, Package);
			PageMargins = new ExtremeML.Spreadsheet.PageMarginsWrapper(Wrapped.PageMargins, this, Package);
			PrintOptions = new ExtremeML.Spreadsheet.PrintOptionsWrapper(Wrapped.PrintOptions, this, Package);
			PageSetup = new ExtremeML.Spreadsheet.PageSetupWrapper(Wrapped.PageSetup, this, Package);
			HeaderFooter = new ExtremeML.Spreadsheet.HeaderFooterWrapper(Wrapped.HeaderFooter, this, Package);
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(Wrapped.AutoFilter, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomSheetView"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomSheetView Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomSheetView();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.State = _state;
				result.View = _view;
				result.Guid = _guid == null ? null : StringValue.FromString(_guid);
				result.Scale = _scale.HasValue ? _scale.ToUInt32Value() : null;
				result.ColorId = _colorId.HasValue ? _colorId.ToUInt32Value() : null;
				result.ShowPageBreaks = _showPageBreaks.HasValue ? _showPageBreaks.ToBooleanValue() : null;
				result.ShowFormulas = _showFormulas.HasValue ? _showFormulas.ToBooleanValue() : null;
				result.ShowGridLines = _showGridLines.HasValue ? _showGridLines.ToBooleanValue() : null;
				result.ShowRowColumn = _showRowColumn.HasValue ? _showRowColumn.ToBooleanValue() : null;
				result.OutlineSymbols = _outlineSymbols.HasValue ? _outlineSymbols.ToBooleanValue() : null;
				result.ZeroValues = _zeroValues.HasValue ? _zeroValues.ToBooleanValue() : null;
				result.FitToPage = _fitToPage.HasValue ? _fitToPage.ToBooleanValue() : null;
				result.PrintArea = _printArea.HasValue ? _printArea.ToBooleanValue() : null;
				result.Filter = _filter.HasValue ? _filter.ToBooleanValue() : null;
				result.ShowAutoFilter = _showAutoFilter.HasValue ? _showAutoFilter.ToBooleanValue() : null;
				result.HiddenRows = _hiddenRows.HasValue ? _hiddenRows.ToBooleanValue() : null;
				result.HiddenColumns = _hiddenColumns.HasValue ? _hiddenColumns.ToBooleanValue() : null;
				result.FilterUnique = _filterUnique.HasValue ? _filterUnique.ToBooleanValue() : null;
				result.ShowRuler = _showRuler.HasValue ? _showRuler.ToBooleanValue() : null;
				result.TopLeftCell = _topLeftCell == null ? null : StringValue.FromString(_topLeftCell);
				result.Pane = Pane.Recompose();
				result.Selection = Selection.Recompose();
				result.RowBreaks = RowBreaks.Recompose();
				result.ColumnBreaks = ColumnBreaks.Recompose();
				result.PageMargins = PageMargins.Recompose();
				result.PrintOptions = PrintOptions.Recompose();
				result.PageSetup = PageSetup.Recompose();
				result.HeaderFooter = HeaderFooter.Recompose();
				result.AutoFilter = AutoFilter.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Pane;
			yield return Selection;
			yield return RowBreaks;
			yield return ColumnBreaks;
			yield return PageMargins;
			yield return PrintOptions;
			yield return PageSetup;
			yield return HeaderFooter;
			yield return AutoFilter;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HeaderFooterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.HeaderFooter>
	{
		private string _localName;
		private Nullable<bool> _differentOddEven;
		private Nullable<bool> _differentFirst;
		private Nullable<bool> _scaleWithDoc;
		private Nullable<bool> _alignWithMargins;

		/// <summary>
		/// Initializes a new instance of the <see cref="HeaderFooterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HeaderFooterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.HeaderFooter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DifferentOddEven"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.
		/// </summary>
		public Nullable<bool> DifferentOddEven
		{
			get { return _differentOddEven; }
			set { OnDifferentOddEvenPropertyChanging(ref value, _differentOddEven); SetModified(value, _differentOddEven); _differentOddEven = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DifferentFirst"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.
		/// </summary>
		public Nullable<bool> DifferentFirst
		{
			get { return _differentFirst; }
			set { OnDifferentFirstPropertyChanging(ref value, _differentFirst); SetModified(value, _differentFirst); _differentFirst = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ScaleWithDoc"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.
		/// </summary>
		public Nullable<bool> ScaleWithDoc
		{
			get { return _scaleWithDoc; }
			set { OnScaleWithDocPropertyChanging(ref value, _scaleWithDoc); SetModified(value, _scaleWithDoc); _scaleWithDoc = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AlignWithMargins"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.
		/// </summary>
		public Nullable<bool> AlignWithMargins
		{
			get { return _alignWithMargins; }
			set { OnAlignWithMarginsPropertyChanging(ref value, _alignWithMargins); SetModified(value, _alignWithMargins); _alignWithMargins = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OddHeaderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OddHeaderWrapper OddHeader { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OddFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OddFooterWrapper OddFooter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.EvenHeaderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.EvenHeaderWrapper EvenHeader { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.EvenFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.EvenFooterWrapper EvenFooter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FirstHeaderWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FirstHeaderWrapper FirstHeader { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FirstFooterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FirstFooterWrapper FirstFooter { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDifferentOddEvenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDifferentFirstPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnScaleWithDocPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAlignWithMarginsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_differentOddEven = default(Nullable<bool>);
			_differentFirst = default(Nullable<bool>);
			_scaleWithDoc = default(Nullable<bool>);
			_alignWithMargins = default(Nullable<bool>);
			OddHeader = new ExtremeML.Spreadsheet.OddHeaderWrapper(null, this, Package);
			OddFooter = new ExtremeML.Spreadsheet.OddFooterWrapper(null, this, Package);
			EvenHeader = new ExtremeML.Spreadsheet.EvenHeaderWrapper(null, this, Package);
			EvenFooter = new ExtremeML.Spreadsheet.EvenFooterWrapper(null, this, Package);
			FirstHeader = new ExtremeML.Spreadsheet.FirstHeaderWrapper(null, this, Package);
			FirstFooter = new ExtremeML.Spreadsheet.FirstFooterWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_differentOddEven = Wrapped.DifferentOddEven == null ? null : Wrapped.DifferentOddEven.ToNullable();
			_differentFirst = Wrapped.DifferentFirst == null ? null : Wrapped.DifferentFirst.ToNullable();
			_scaleWithDoc = Wrapped.ScaleWithDoc == null ? null : Wrapped.ScaleWithDoc.ToNullable();
			_alignWithMargins = Wrapped.AlignWithMargins == null ? null : Wrapped.AlignWithMargins.ToNullable();
			OddHeader = new ExtremeML.Spreadsheet.OddHeaderWrapper(Wrapped.OddHeader, this, Package);
			OddFooter = new ExtremeML.Spreadsheet.OddFooterWrapper(Wrapped.OddFooter, this, Package);
			EvenHeader = new ExtremeML.Spreadsheet.EvenHeaderWrapper(Wrapped.EvenHeader, this, Package);
			EvenFooter = new ExtremeML.Spreadsheet.EvenFooterWrapper(Wrapped.EvenFooter, this, Package);
			FirstHeader = new ExtremeML.Spreadsheet.FirstHeaderWrapper(Wrapped.FirstHeader, this, Package);
			FirstFooter = new ExtremeML.Spreadsheet.FirstFooterWrapper(Wrapped.FirstFooter, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.HeaderFooter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.HeaderFooter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.HeaderFooter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DifferentOddEven = _differentOddEven.HasValue ? _differentOddEven.ToBooleanValue() : null;
				result.DifferentFirst = _differentFirst.HasValue ? _differentFirst.ToBooleanValue() : null;
				result.ScaleWithDoc = _scaleWithDoc.HasValue ? _scaleWithDoc.ToBooleanValue() : null;
				result.AlignWithMargins = _alignWithMargins.HasValue ? _alignWithMargins.ToBooleanValue() : null;
				result.OddHeader = OddHeader.Recompose();
				result.OddFooter = OddFooter.Recompose();
				result.EvenHeader = EvenHeader.Recompose();
				result.EvenFooter = EvenFooter.Recompose();
				result.FirstHeader = FirstHeader.Recompose();
				result.FirstFooter = FirstFooter.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return OddHeader;
			yield return OddFooter;
			yield return EvenHeader;
			yield return EvenFooter;
			yield return FirstHeader;
			yield return FirstFooter;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenFooter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EvenFooterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.EvenFooter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="EvenFooterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenFooter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EvenFooterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.EvenFooter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenFooter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenFooter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenFooter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.EvenFooter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.EvenFooter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstFooter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FirstFooterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FirstFooter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="FirstFooterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstFooter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FirstFooterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FirstFooter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstFooter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstFooter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstFooter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FirstFooter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FirstFooter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OddHeader"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OddHeaderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OddHeader>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="OddHeaderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OddHeader"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OddHeaderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OddHeader wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OddHeader"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OddHeader"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OddHeader"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OddHeader Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OddHeader();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OddFooter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OddFooterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OddFooter>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="OddFooterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OddFooter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OddFooterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OddFooter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OddFooter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OddFooter"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OddFooter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OddFooter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OddFooter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstHeader"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FirstHeaderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FirstHeader>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="FirstHeaderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstHeader"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FirstHeaderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FirstHeader wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstHeader"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstHeader"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FirstHeader"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FirstHeader Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FirstHeader();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenHeader"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EvenHeaderWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.EvenHeader>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="EvenHeaderWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenHeader"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EvenHeaderWrapper(
			DocumentFormat.OpenXml.Spreadsheet.EvenHeader wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenHeader"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenHeader"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.EvenHeader"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.EvenHeader Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.EvenHeader();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PageSetupWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PageSetup>
	{
		private string _localName;
		private Nullable<uint> _paperSize;
		private Nullable<uint> _scale;
		private Nullable<uint> _firstPageNumber;
		private Nullable<uint> _fitToWidth;
		private Nullable<uint> _fitToHeight;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PageOrderValues> _pageOrder;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.OrientationValues> _orientation;
		private Nullable<bool> _usePrinterDefaults;
		private Nullable<bool> _blackAndWhite;
		private Nullable<bool> _draft;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.CellCommentsValues> _cellComments;
		private Nullable<bool> _useFirstPageNumber;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.PrintErrorValues> _errors;
		private Nullable<uint> _horizontalDpi;
		private Nullable<uint> _verticalDpi;
		private Nullable<uint> _copies;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="PageSetupWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PageSetupWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PageSetup wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PaperSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> PaperSize
		{
			get { return _paperSize; }
			set { OnPaperSizePropertyChanging(ref value, _paperSize); SetModified(value, _paperSize); _paperSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Scale"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> Scale
		{
			get { return _scale; }
			set { OnScalePropertyChanging(ref value, _scale); SetModified(value, _scale); _scale = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FirstPageNumber"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> FirstPageNumber
		{
			get { return _firstPageNumber; }
			set { OnFirstPageNumberPropertyChanging(ref value, _firstPageNumber); SetModified(value, _firstPageNumber); _firstPageNumber = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FitToWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> FitToWidth
		{
			get { return _fitToWidth; }
			set { OnFitToWidthPropertyChanging(ref value, _fitToWidth); SetModified(value, _fitToWidth); _fitToWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FitToHeight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> FitToHeight
		{
			get { return _fitToHeight; }
			set { OnFitToHeightPropertyChanging(ref value, _fitToHeight); SetModified(value, _fitToHeight); _fitToHeight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PageOrder"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PageOrderValues> PageOrder
		{
			get { return _pageOrder; }
			set { OnPageOrderPropertyChanging(ref value, _pageOrder); SetModified(value, _pageOrder); _pageOrder = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Orientation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.OrientationValues> Orientation
		{
			get { return _orientation; }
			set { OnOrientationPropertyChanging(ref value, _orientation); SetModified(value, _orientation); _orientation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UsePrinterDefaults"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<bool> UsePrinterDefaults
		{
			get { return _usePrinterDefaults; }
			set { OnUsePrinterDefaultsPropertyChanging(ref value, _usePrinterDefaults); SetModified(value, _usePrinterDefaults); _usePrinterDefaults = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BlackAndWhite"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<bool> BlackAndWhite
		{
			get { return _blackAndWhite; }
			set { OnBlackAndWhitePropertyChanging(ref value, _blackAndWhite); SetModified(value, _blackAndWhite); _blackAndWhite = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Draft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<bool> Draft
		{
			get { return _draft; }
			set { OnDraftPropertyChanging(ref value, _draft); SetModified(value, _draft); _draft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellComments"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.CellCommentsValues> CellComments
		{
			get { return _cellComments; }
			set { OnCellCommentsPropertyChanging(ref value, _cellComments); SetModified(value, _cellComments); _cellComments = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UseFirstPageNumber"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<bool> UseFirstPageNumber
		{
			get { return _useFirstPageNumber; }
			set { OnUseFirstPageNumberPropertyChanging(ref value, _useFirstPageNumber); SetModified(value, _useFirstPageNumber); _useFirstPageNumber = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Errors"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.PrintErrorValues> Errors
		{
			get { return _errors; }
			set { OnErrorsPropertyChanging(ref value, _errors); SetModified(value, _errors); _errors = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HorizontalDpi"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> HorizontalDpi
		{
			get { return _horizontalDpi; }
			set { OnHorizontalDpiPropertyChanging(ref value, _horizontalDpi); SetModified(value, _horizontalDpi); _horizontalDpi = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="VerticalDpi"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> VerticalDpi
		{
			get { return _verticalDpi; }
			set { OnVerticalDpiPropertyChanging(ref value, _verticalDpi); SetModified(value, _verticalDpi); _verticalDpi = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Copies"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public Nullable<uint> Copies
		{
			get { return _copies; }
			set { OnCopiesPropertyChanging(ref value, _copies); SetModified(value, _copies); _copies = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPaperSizePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnScalePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFirstPageNumberPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFitToWidthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnFitToHeightPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnPageOrderPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PageOrderValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PageOrderValues> original);
		partial void OnOrientationPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.OrientationValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.OrientationValues> original);
		partial void OnUsePrinterDefaultsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBlackAndWhitePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDraftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCellCommentsPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.CellCommentsValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.CellCommentsValues> original);
		partial void OnUseFirstPageNumberPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnErrorsPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.PrintErrorValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.PrintErrorValues> original);
		partial void OnHorizontalDpiPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnVerticalDpiPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCopiesPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_paperSize = default(Nullable<uint>);
			_scale = default(Nullable<uint>);
			_firstPageNumber = default(Nullable<uint>);
			_fitToWidth = default(Nullable<uint>);
			_fitToHeight = default(Nullable<uint>);
			_pageOrder = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PageOrderValues>);
			_orientation = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.OrientationValues>);
			_usePrinterDefaults = default(Nullable<bool>);
			_blackAndWhite = default(Nullable<bool>);
			_draft = default(Nullable<bool>);
			_cellComments = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.CellCommentsValues>);
			_useFirstPageNumber = default(Nullable<bool>);
			_errors = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.PrintErrorValues>);
			_horizontalDpi = default(Nullable<uint>);
			_verticalDpi = default(Nullable<uint>);
			_copies = default(Nullable<uint>);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_paperSize = Wrapped.PaperSize == null ? null : Wrapped.PaperSize.ToNullable();
			_scale = Wrapped.Scale == null ? null : Wrapped.Scale.ToNullable();
			_firstPageNumber = Wrapped.FirstPageNumber == null ? null : Wrapped.FirstPageNumber.ToNullable();
			_fitToWidth = Wrapped.FitToWidth == null ? null : Wrapped.FitToWidth.ToNullable();
			_fitToHeight = Wrapped.FitToHeight == null ? null : Wrapped.FitToHeight.ToNullable();
			_usePrinterDefaults = Wrapped.UsePrinterDefaults == null ? null : Wrapped.UsePrinterDefaults.ToNullable();
			_blackAndWhite = Wrapped.BlackAndWhite == null ? null : Wrapped.BlackAndWhite.ToNullable();
			_draft = Wrapped.Draft == null ? null : Wrapped.Draft.ToNullable();
			_useFirstPageNumber = Wrapped.UseFirstPageNumber == null ? null : Wrapped.UseFirstPageNumber.ToNullable();
			_horizontalDpi = Wrapped.HorizontalDpi == null ? null : Wrapped.HorizontalDpi.ToNullable();
			_verticalDpi = Wrapped.VerticalDpi == null ? null : Wrapped.VerticalDpi.ToNullable();
			_copies = Wrapped.Copies == null ? null : Wrapped.Copies.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			if (Wrapped.PageOrder != null) _pageOrder = Wrapped.PageOrder;
			if (Wrapped.Orientation != null) _orientation = Wrapped.Orientation;
			if (Wrapped.CellComments != null) _cellComments = Wrapped.CellComments;
			if (Wrapped.Errors != null) _errors = Wrapped.Errors;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetup"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PageSetup Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PageSetup();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.PageOrder = _pageOrder;
				result.Orientation = _orientation;
				result.CellComments = _cellComments;
				result.Errors = _errors;
				result.PaperSize = _paperSize.HasValue ? _paperSize.ToUInt32Value() : null;
				result.Scale = _scale.HasValue ? _scale.ToUInt32Value() : null;
				result.FirstPageNumber = _firstPageNumber.HasValue ? _firstPageNumber.ToUInt32Value() : null;
				result.FitToWidth = _fitToWidth.HasValue ? _fitToWidth.ToUInt32Value() : null;
				result.FitToHeight = _fitToHeight.HasValue ? _fitToHeight.ToUInt32Value() : null;
				result.UsePrinterDefaults = _usePrinterDefaults.HasValue ? _usePrinterDefaults.ToBooleanValue() : null;
				result.BlackAndWhite = _blackAndWhite.HasValue ? _blackAndWhite.ToBooleanValue() : null;
				result.Draft = _draft.HasValue ? _draft.ToBooleanValue() : null;
				result.UseFirstPageNumber = _useFirstPageNumber.HasValue ? _useFirstPageNumber.ToBooleanValue() : null;
				result.HorizontalDpi = _horizontalDpi.HasValue ? _horizontalDpi.ToUInt32Value() : null;
				result.VerticalDpi = _verticalDpi.HasValue ? _verticalDpi.ToUInt32Value() : null;
				result.Copies = _copies.HasValue ? _copies.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RowBreaksWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.RowBreaks>
	{
		private string _localName;
		private Nullable<uint> _count;
		private Nullable<uint> _manualBreakCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="RowBreaksWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RowBreaksWrapper(
			DocumentFormat.OpenXml.Spreadsheet.RowBreaks wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ManualBreakCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> instance.
		/// </summary>
		public Nullable<uint> ManualBreakCount
		{
			get { return _manualBreakCount; }
			set { OnManualBreakCountPropertyChanging(ref value, _manualBreakCount); SetModified(value, _manualBreakCount); _manualBreakCount = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BreakWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BreakWrapperCollection Breaks { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnManualBreakCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			_manualBreakCount = default(Nullable<uint>);
			Breaks = new ExtremeML.Spreadsheet.BreakWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_manualBreakCount = Wrapped.ManualBreakCount == null ? null : Wrapped.ManualBreakCount.ToNullable();
			Breaks = new ExtremeML.Spreadsheet.BreakWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.RowBreaks"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.RowBreaks Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.RowBreaks();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.ManualBreakCount = _manualBreakCount.HasValue ? _manualBreakCount.ToUInt32Value() : null;
				Breaks.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Breaks;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BreakWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Break>
	{
		private string _localName;
		private Nullable<uint> _id;
		private Nullable<uint> _min;
		private Nullable<uint> _max;
		private Nullable<bool> _manualPageBreak;
		private Nullable<bool> _pivotTablePageBreak;

		/// <summary>
		/// Initializes a new instance of the <see cref="BreakWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BreakWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Break wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Min"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public Nullable<uint> Min
		{
			get { return _min; }
			set { OnMinPropertyChanging(ref value, _min); SetModified(value, _min); _min = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Max"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public Nullable<uint> Max
		{
			get { return _max; }
			set { OnMaxPropertyChanging(ref value, _max); SetModified(value, _max); _max = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ManualPageBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public Nullable<bool> ManualPageBreak
		{
			get { return _manualPageBreak; }
			set { OnManualPageBreakPropertyChanging(ref value, _manualPageBreak); SetModified(value, _manualPageBreak); _manualPageBreak = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PivotTablePageBreak"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.
		/// </summary>
		public Nullable<bool> PivotTablePageBreak
		{
			get { return _pivotTablePageBreak; }
			set { OnPivotTablePageBreakPropertyChanging(ref value, _pivotTablePageBreak); SetModified(value, _pivotTablePageBreak); _pivotTablePageBreak = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMinPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMaxPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnManualPageBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPivotTablePageBreakPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_min = default(Nullable<uint>);
			_max = default(Nullable<uint>);
			_manualPageBreak = default(Nullable<bool>);
			_pivotTablePageBreak = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_min = Wrapped.Min == null ? null : Wrapped.Min.ToNullable();
			_max = Wrapped.Max == null ? null : Wrapped.Max.ToNullable();
			_manualPageBreak = Wrapped.ManualPageBreak == null ? null : Wrapped.ManualPageBreak.ToNullable();
			_pivotTablePageBreak = Wrapped.PivotTablePageBreak == null ? null : Wrapped.PivotTablePageBreak.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Break"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Break Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Break();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.Min = _min.HasValue ? _min.ToUInt32Value() : null;
				result.Max = _max.HasValue ? _max.ToUInt32Value() : null;
				result.ManualPageBreak = _manualPageBreak.HasValue ? _manualPageBreak.ToBooleanValue() : null;
				result.PivotTablePageBreak = _pivotTablePageBreak.HasValue ? _pivotTablePageBreak.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnBreaksWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks>
	{
		private string _localName;
		private Nullable<uint> _count;
		private Nullable<uint> _manualBreakCount;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnBreaksWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnBreaksWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ManualBreakCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> instance.
		/// </summary>
		public Nullable<uint> ManualBreakCount
		{
			get { return _manualBreakCount; }
			set { OnManualBreakCountPropertyChanging(ref value, _manualBreakCount); SetModified(value, _manualBreakCount); _manualBreakCount = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.BreakWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.BreakWrapperCollection Breaks { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnManualBreakCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			_manualBreakCount = default(Nullable<uint>);
			Breaks = new ExtremeML.Spreadsheet.BreakWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			_manualBreakCount = Wrapped.ManualBreakCount == null ? null : Wrapped.ManualBreakCount.ToNullable();
			Breaks = new ExtremeML.Spreadsheet.BreakWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				result.ManualBreakCount = _manualBreakCount.HasValue ? _manualBreakCount.ToUInt32Value() : null;
				Breaks.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Breaks;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PageMarginsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PageMargins>
	{
		private string _localName;
		private Nullable<double> _left;
		private Nullable<double> _right;
		private Nullable<double> _top;
		private Nullable<double> _bottom;
		private Nullable<double> _header;
		private Nullable<double> _footer;

		/// <summary>
		/// Initializes a new instance of the <see cref="PageMarginsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PageMarginsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PageMargins wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Left"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Left
		{
			get { return _left; }
			set { OnLeftPropertyChanging(ref value, _left); SetModified(value, _left); _left = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Right"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Right
		{
			get { return _right; }
			set { OnRightPropertyChanging(ref value, _right); SetModified(value, _right); _right = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Top"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Top
		{
			get { return _top; }
			set { OnTopPropertyChanging(ref value, _top); SetModified(value, _top); _top = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Bottom"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Bottom
		{
			get { return _bottom; }
			set { OnBottomPropertyChanging(ref value, _bottom); SetModified(value, _bottom); _bottom = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Header"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Header
		{
			get { return _header; }
			set { OnHeaderPropertyChanging(ref value, _header); SetModified(value, _header); _header = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Footer"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.
		/// </summary>
		public Nullable<double> Footer
		{
			get { return _footer; }
			set { OnFooterPropertyChanging(ref value, _footer); SetModified(value, _footer); _footer = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLeftPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnRightPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnTopPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnBottomPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnHeaderPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnFooterPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_left = default(Nullable<double>);
			_right = default(Nullable<double>);
			_top = default(Nullable<double>);
			_bottom = default(Nullable<double>);
			_header = default(Nullable<double>);
			_footer = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_left = Wrapped.Left == null ? null : Wrapped.Left.ToNullable();
			_right = Wrapped.Right == null ? null : Wrapped.Right.ToNullable();
			_top = Wrapped.Top == null ? null : Wrapped.Top.ToNullable();
			_bottom = Wrapped.Bottom == null ? null : Wrapped.Bottom.ToNullable();
			_header = Wrapped.Header == null ? null : Wrapped.Header.ToNullable();
			_footer = Wrapped.Footer == null ? null : Wrapped.Footer.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PageMargins"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PageMargins Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PageMargins();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Left = _left.HasValue ? _left.ToDoubleValue() : null;
				result.Right = _right.HasValue ? _right.ToDoubleValue() : null;
				result.Top = _top.HasValue ? _top.ToDoubleValue() : null;
				result.Bottom = _bottom.HasValue ? _bottom.ToDoubleValue() : null;
				result.Header = _header.HasValue ? _header.ToDoubleValue() : null;
				result.Footer = _footer.HasValue ? _footer.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCells"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MergeCellsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.MergeCells>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="MergeCellsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCells"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MergeCellsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.MergeCells wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCells"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCells"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.MergeCellWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.MergeCellWrapperCollection MergeCells { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			MergeCells = new ExtremeML.Spreadsheet.MergeCellWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			MergeCells = new ExtremeML.Spreadsheet.MergeCellWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCells"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.MergeCells Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.MergeCells();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				MergeCells.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return MergeCells;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCell"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MergeCellWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.MergeCell>
	{
		private string _localName;
		private string _reference;

		/// <summary>
		/// Initializes a new instance of the <see cref="MergeCellWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCell"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MergeCellWrapper(
			DocumentFormat.OpenXml.Spreadsheet.MergeCell wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCell"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCell"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.MergeCell"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.MergeCell Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.MergeCell();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataValidationsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DataValidations>
	{
		private string _localName;
		private Nullable<bool> _disablePrompts;
		private Nullable<uint> _xWindow;
		private Nullable<uint> _yWindow;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="DataValidationsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataValidationsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DataValidations wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DisablePrompts"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.
		/// </summary>
		public Nullable<bool> DisablePrompts
		{
			get { return _disablePrompts; }
			set { OnDisablePromptsPropertyChanging(ref value, _disablePrompts); SetModified(value, _disablePrompts); _disablePrompts = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.
		/// </summary>
		public Nullable<uint> XWindow
		{
			get { return _xWindow; }
			set { OnXWindowPropertyChanging(ref value, _xWindow); SetModified(value, _xWindow); _xWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="YWindow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.
		/// </summary>
		public Nullable<uint> YWindow
		{
			get { return _yWindow; }
			set { OnYWindowPropertyChanging(ref value, _yWindow); SetModified(value, _yWindow); _yWindow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DataValidationWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DataValidationWrapperCollection DataValidations { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnDisablePromptsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXWindowPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnYWindowPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_disablePrompts = default(Nullable<bool>);
			_xWindow = default(Nullable<uint>);
			_yWindow = default(Nullable<uint>);
			_count = default(Nullable<uint>);
			DataValidations = new ExtremeML.Spreadsheet.DataValidationWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_disablePrompts = Wrapped.DisablePrompts == null ? null : Wrapped.DisablePrompts.ToNullable();
			_xWindow = Wrapped.XWindow == null ? null : Wrapped.XWindow.ToNullable();
			_yWindow = Wrapped.YWindow == null ? null : Wrapped.YWindow.ToNullable();
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			DataValidations = new ExtremeML.Spreadsheet.DataValidationWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidations"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DataValidations Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DataValidations();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DisablePrompts = _disablePrompts.HasValue ? _disablePrompts.ToBooleanValue() : null;
				result.XWindow = _xWindow.HasValue ? _xWindow.ToUInt32Value() : null;
				result.YWindow = _yWindow.HasValue ? _yWindow.ToUInt32Value() : null;
				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				DataValidations.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DataValidations;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataValidationWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DataValidation>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationValues> _type;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationErrorStyleValues> _errorStyle;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationImeModeValues> _imeMode;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationOperatorValues> _operator;
		private Nullable<bool> _allowBlank;
		private Nullable<bool> _showDropDown;
		private Nullable<bool> _showInputMessage;
		private Nullable<bool> _showErrorMessage;
		private string _errorTitle;
		private string _error;
		private string _promptTitle;
		private string _prompt;

		/// <summary>
		/// Initializes a new instance of the <see cref="DataValidationWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataValidationWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DataValidation wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ErrorStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationErrorStyleValues> ErrorStyle
		{
			get { return _errorStyle; }
			set { OnErrorStylePropertyChanging(ref value, _errorStyle); SetModified(value, _errorStyle); _errorStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ImeMode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationImeModeValues> ImeMode
		{
			get { return _imeMode; }
			set { OnImeModePropertyChanging(ref value, _imeMode); SetModified(value, _imeMode); _imeMode = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Operator"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationOperatorValues> Operator
		{
			get { return _operator; }
			set { OnOperatorPropertyChanging(ref value, _operator); SetModified(value, _operator); _operator = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AllowBlank"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<bool> AllowBlank
		{
			get { return _allowBlank; }
			set { OnAllowBlankPropertyChanging(ref value, _allowBlank); SetModified(value, _allowBlank); _allowBlank = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowDropDown"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<bool> ShowDropDown
		{
			get { return _showDropDown; }
			set { OnShowDropDownPropertyChanging(ref value, _showDropDown); SetModified(value, _showDropDown); _showDropDown = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowInputMessage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<bool> ShowInputMessage
		{
			get { return _showInputMessage; }
			set { OnShowInputMessagePropertyChanging(ref value, _showInputMessage); SetModified(value, _showInputMessage); _showInputMessage = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowErrorMessage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public Nullable<bool> ShowErrorMessage
		{
			get { return _showErrorMessage; }
			set { OnShowErrorMessagePropertyChanging(ref value, _showErrorMessage); SetModified(value, _showErrorMessage); _showErrorMessage = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ErrorTitle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public string ErrorTitle
		{
			get { return _errorTitle; }
			set { OnErrorTitlePropertyChanging(ref value, _errorTitle); SetModified(value, _errorTitle); _errorTitle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Error"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public string Error
		{
			get { return _error; }
			set { OnErrorPropertyChanging(ref value, _error); SetModified(value, _error); _error = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PromptTitle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public string PromptTitle
		{
			get { return _promptTitle; }
			set { OnPromptTitlePropertyChanging(ref value, _promptTitle); SetModified(value, _promptTitle); _promptTitle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Prompt"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.
		/// </summary>
		public string Prompt
		{
			get { return _prompt; }
			set { OnPromptPropertyChanging(ref value, _prompt); SetModified(value, _prompt); _prompt = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.Formula1Wrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.Formula1Wrapper Formula1 { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.Formula2Wrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.Formula2Wrapper Formula2 { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationValues> original);
		partial void OnErrorStylePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationErrorStyleValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationErrorStyleValues> original);
		partial void OnImeModePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationImeModeValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationImeModeValues> original);
		partial void OnOperatorPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationOperatorValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationOperatorValues> original);
		partial void OnAllowBlankPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowDropDownPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowInputMessagePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowErrorMessagePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnErrorTitlePropertyChanging(ref string modified, string original);
		partial void OnErrorPropertyChanging(ref string modified, string original);
		partial void OnPromptTitlePropertyChanging(ref string modified, string original);
		partial void OnPromptPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationValues>);
			_errorStyle = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationErrorStyleValues>);
			_imeMode = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationImeModeValues>);
			_operator = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataValidationOperatorValues>);
			_allowBlank = default(Nullable<bool>);
			_showDropDown = default(Nullable<bool>);
			_showInputMessage = default(Nullable<bool>);
			_showErrorMessage = default(Nullable<bool>);
			_errorTitle = default(string);
			_error = default(string);
			_promptTitle = default(string);
			_prompt = default(string);
			Formula1 = new ExtremeML.Spreadsheet.Formula1Wrapper(null, this, Package);
			Formula2 = new ExtremeML.Spreadsheet.Formula2Wrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_allowBlank = Wrapped.AllowBlank == null ? null : Wrapped.AllowBlank.ToNullable();
			_showDropDown = Wrapped.ShowDropDown == null ? null : Wrapped.ShowDropDown.ToNullable();
			_showInputMessage = Wrapped.ShowInputMessage == null ? null : Wrapped.ShowInputMessage.ToNullable();
			_showErrorMessage = Wrapped.ShowErrorMessage == null ? null : Wrapped.ShowErrorMessage.ToNullable();
			_errorTitle = Wrapped.ErrorTitle == null ? null : Wrapped.ErrorTitle.ToString();
			_error = Wrapped.Error == null ? null : Wrapped.Error.ToString();
			_promptTitle = Wrapped.PromptTitle == null ? null : Wrapped.PromptTitle.ToString();
			_prompt = Wrapped.Prompt == null ? null : Wrapped.Prompt.ToString();
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.ErrorStyle != null) _errorStyle = Wrapped.ErrorStyle;
			if (Wrapped.ImeMode != null) _imeMode = Wrapped.ImeMode;
			if (Wrapped.Operator != null) _operator = Wrapped.Operator;
			Formula1 = new ExtremeML.Spreadsheet.Formula1Wrapper(Wrapped.Formula1, this, Package);
			Formula2 = new ExtremeML.Spreadsheet.Formula2Wrapper(Wrapped.Formula2, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DataValidation"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DataValidation Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DataValidation();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.ErrorStyle = _errorStyle;
				result.ImeMode = _imeMode;
				result.Operator = _operator;
				result.AllowBlank = _allowBlank.HasValue ? _allowBlank.ToBooleanValue() : null;
				result.ShowDropDown = _showDropDown.HasValue ? _showDropDown.ToBooleanValue() : null;
				result.ShowInputMessage = _showInputMessage.HasValue ? _showInputMessage.ToBooleanValue() : null;
				result.ShowErrorMessage = _showErrorMessage.HasValue ? _showErrorMessage.ToBooleanValue() : null;
				result.ErrorTitle = _errorTitle == null ? null : StringValue.FromString(_errorTitle);
				result.Error = _error == null ? null : StringValue.FromString(_error);
				result.PromptTitle = _promptTitle == null ? null : StringValue.FromString(_promptTitle);
				result.Prompt = _prompt == null ? null : StringValue.FromString(_prompt);
				result.Formula1 = Formula1.Recompose();
				result.Formula2 = Formula2.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Formula1;
			yield return Formula2;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula1"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Formula1Wrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Formula1>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="Formula1Wrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula1"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Formula1Wrapper(
			DocumentFormat.OpenXml.Spreadsheet.Formula1 wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula1"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula1"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula1"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Formula1 Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Formula1();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula2"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class Formula2Wrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Formula2>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="Formula2Wrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula2"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal Formula2Wrapper(
			DocumentFormat.OpenXml.Spreadsheet.Formula2 wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula2"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula2"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula2"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Formula2 Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Formula2();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlinks"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinksWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Hyperlinks>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinksWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlinks"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinksWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Hyperlinks wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlinks"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.HyperlinkWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.HyperlinkWrapperCollection Hyperlinks { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Hyperlinks = new ExtremeML.Spreadsheet.HyperlinkWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Hyperlinks = new ExtremeML.Spreadsheet.HyperlinkWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlinks"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Hyperlinks Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Hyperlinks();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Hyperlinks.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Hyperlinks;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinkWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Hyperlink>
	{
		private string _localName;
		private string _reference;
		private string _id;
		private string _location;
		private string _tooltip;
		private string _display;

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinkWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinkWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Hyperlink wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Location"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string Location
		{
			get { return _location; }
			set { OnLocationPropertyChanging(ref value, _location); SetModified(value, _location); _location = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Tooltip"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string Tooltip
		{
			get { return _tooltip; }
			set { OnTooltipPropertyChanging(ref value, _tooltip); SetModified(value, _tooltip); _tooltip = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Display"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.
		/// </summary>
		public string Display
		{
			get { return _display; }
			set { OnDisplayPropertyChanging(ref value, _display); SetModified(value, _display); _display = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);
		partial void OnIdPropertyChanging(ref string modified, string original);
		partial void OnLocationPropertyChanging(ref string modified, string original);
		partial void OnTooltipPropertyChanging(ref string modified, string original);
		partial void OnDisplayPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
			_id = default(string);
			_location = default(string);
			_tooltip = default(string);
			_display = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			_location = Wrapped.Location == null ? null : Wrapped.Location.ToString();
			_tooltip = Wrapped.Tooltip == null ? null : Wrapped.Tooltip.ToString();
			_display = Wrapped.Display == null ? null : Wrapped.Display.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Hyperlink"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Hyperlink Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Hyperlink();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.Location = _location == null ? null : StringValue.FromString(_location);
				result.Tooltip = _tooltip == null ? null : StringValue.FromString(_tooltip);
				result.Display = _display == null ? null : StringValue.FromString(_display);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SheetProperties>
	{
		private string _localName;
		private Nullable<bool> _syncHorizontal;
		private Nullable<bool> _syncVertical;
		private string _syncReference;
		private Nullable<bool> _transitionEvaluation;
		private Nullable<bool> _transitionEntry;
		private Nullable<bool> _published;
		private string _codeName;
		private Nullable<bool> _filterMode;
		private Nullable<bool> _enableFormatConditionsCalculation;

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SheetProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SyncHorizontal"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> SyncHorizontal
		{
			get { return _syncHorizontal; }
			set { OnSyncHorizontalPropertyChanging(ref value, _syncHorizontal); SetModified(value, _syncHorizontal); _syncHorizontal = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SyncVertical"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> SyncVertical
		{
			get { return _syncVertical; }
			set { OnSyncVerticalPropertyChanging(ref value, _syncVertical); SetModified(value, _syncVertical); _syncVertical = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SyncReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public string SyncReference
		{
			get { return _syncReference; }
			set { OnSyncReferencePropertyChanging(ref value, _syncReference); SetModified(value, _syncReference); _syncReference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TransitionEvaluation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> TransitionEvaluation
		{
			get { return _transitionEvaluation; }
			set { OnTransitionEvaluationPropertyChanging(ref value, _transitionEvaluation); SetModified(value, _transitionEvaluation); _transitionEvaluation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TransitionEntry"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> TransitionEntry
		{
			get { return _transitionEntry; }
			set { OnTransitionEntryPropertyChanging(ref value, _transitionEntry); SetModified(value, _transitionEntry); _transitionEntry = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Published"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> Published
		{
			get { return _published; }
			set { OnPublishedPropertyChanging(ref value, _published); SetModified(value, _published); _published = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CodeName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public string CodeName
		{
			get { return _codeName; }
			set { OnCodeNamePropertyChanging(ref value, _codeName); SetModified(value, _codeName); _codeName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FilterMode"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> FilterMode
		{
			get { return _filterMode; }
			set { OnFilterModePropertyChanging(ref value, _filterMode); SetModified(value, _filterMode); _filterMode = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EnableFormatConditionsCalculation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.
		/// </summary>
		public Nullable<bool> EnableFormatConditionsCalculation
		{
			get { return _enableFormatConditionsCalculation; }
			set { OnEnableFormatConditionsCalculationPropertyChanging(ref value, _enableFormatConditionsCalculation); SetModified(value, _enableFormatConditionsCalculation); _enableFormatConditionsCalculation = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TabColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TabColorWrapper TabColor { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OutlinePropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OutlinePropertiesWrapper OutlineProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PageSetupPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PageSetupPropertiesWrapper PageSetupProperties { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnSyncHorizontalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSyncVerticalPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSyncReferencePropertyChanging(ref string modified, string original);
		partial void OnTransitionEvaluationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTransitionEntryPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPublishedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCodeNamePropertyChanging(ref string modified, string original);
		partial void OnFilterModePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEnableFormatConditionsCalculationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_syncHorizontal = default(Nullable<bool>);
			_syncVertical = default(Nullable<bool>);
			_syncReference = default(string);
			_transitionEvaluation = default(Nullable<bool>);
			_transitionEntry = default(Nullable<bool>);
			_published = default(Nullable<bool>);
			_codeName = default(string);
			_filterMode = default(Nullable<bool>);
			_enableFormatConditionsCalculation = default(Nullable<bool>);
			TabColor = new ExtremeML.Spreadsheet.TabColorWrapper(null, this, Package);
			OutlineProperties = new ExtremeML.Spreadsheet.OutlinePropertiesWrapper(null, this, Package);
			PageSetupProperties = new ExtremeML.Spreadsheet.PageSetupPropertiesWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_syncHorizontal = Wrapped.SyncHorizontal == null ? null : Wrapped.SyncHorizontal.ToNullable();
			_syncVertical = Wrapped.SyncVertical == null ? null : Wrapped.SyncVertical.ToNullable();
			_syncReference = Wrapped.SyncReference == null ? null : Wrapped.SyncReference.ToString();
			_transitionEvaluation = Wrapped.TransitionEvaluation == null ? null : Wrapped.TransitionEvaluation.ToNullable();
			_transitionEntry = Wrapped.TransitionEntry == null ? null : Wrapped.TransitionEntry.ToNullable();
			_published = Wrapped.Published == null ? null : Wrapped.Published.ToNullable();
			_codeName = Wrapped.CodeName == null ? null : Wrapped.CodeName.ToString();
			_filterMode = Wrapped.FilterMode == null ? null : Wrapped.FilterMode.ToNullable();
			_enableFormatConditionsCalculation = Wrapped.EnableFormatConditionsCalculation == null ? null : Wrapped.EnableFormatConditionsCalculation.ToNullable();
			TabColor = new ExtremeML.Spreadsheet.TabColorWrapper(Wrapped.TabColor, this, Package);
			OutlineProperties = new ExtremeML.Spreadsheet.OutlinePropertiesWrapper(Wrapped.OutlineProperties, this, Package);
			PageSetupProperties = new ExtremeML.Spreadsheet.PageSetupPropertiesWrapper(Wrapped.PageSetupProperties, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SheetProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SheetProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SheetProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SyncHorizontal = _syncHorizontal.HasValue ? _syncHorizontal.ToBooleanValue() : null;
				result.SyncVertical = _syncVertical.HasValue ? _syncVertical.ToBooleanValue() : null;
				result.SyncReference = _syncReference == null ? null : StringValue.FromString(_syncReference);
				result.TransitionEvaluation = _transitionEvaluation.HasValue ? _transitionEvaluation.ToBooleanValue() : null;
				result.TransitionEntry = _transitionEntry.HasValue ? _transitionEntry.ToBooleanValue() : null;
				result.Published = _published.HasValue ? _published.ToBooleanValue() : null;
				result.CodeName = _codeName == null ? null : StringValue.FromString(_codeName);
				result.FilterMode = _filterMode.HasValue ? _filterMode.ToBooleanValue() : null;
				result.EnableFormatConditionsCalculation = _enableFormatConditionsCalculation.HasValue ? _enableFormatConditionsCalculation.ToBooleanValue() : null;
				result.TabColor = TabColor.Recompose();
				result.OutlineProperties = OutlineProperties.Recompose();
				result.PageSetupProperties = PageSetupProperties.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return TabColor;
			yield return OutlineProperties;
			yield return PageSetupProperties;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OutlinePropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OutlineProperties>
	{
		private string _localName;
		private Nullable<bool> _applyStyles;
		private Nullable<bool> _summaryBelow;
		private Nullable<bool> _summaryRight;
		private Nullable<bool> _showOutlineSymbols;

		/// <summary>
		/// Initializes a new instance of the <see cref="OutlinePropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OutlinePropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OutlineProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyStyles"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.
		/// </summary>
		public Nullable<bool> ApplyStyles
		{
			get { return _applyStyles; }
			set { OnApplyStylesPropertyChanging(ref value, _applyStyles); SetModified(value, _applyStyles); _applyStyles = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SummaryBelow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.
		/// </summary>
		public Nullable<bool> SummaryBelow
		{
			get { return _summaryBelow; }
			set { OnSummaryBelowPropertyChanging(ref value, _summaryBelow); SetModified(value, _summaryBelow); _summaryBelow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SummaryRight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.
		/// </summary>
		public Nullable<bool> SummaryRight
		{
			get { return _summaryRight; }
			set { OnSummaryRightPropertyChanging(ref value, _summaryRight); SetModified(value, _summaryRight); _summaryRight = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowOutlineSymbols"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.
		/// </summary>
		public Nullable<bool> ShowOutlineSymbols
		{
			get { return _showOutlineSymbols; }
			set { OnShowOutlineSymbolsPropertyChanging(ref value, _showOutlineSymbols); SetModified(value, _showOutlineSymbols); _showOutlineSymbols = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnApplyStylesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSummaryBelowPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSummaryRightPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowOutlineSymbolsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_applyStyles = default(Nullable<bool>);
			_summaryBelow = default(Nullable<bool>);
			_summaryRight = default(Nullable<bool>);
			_showOutlineSymbols = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_applyStyles = Wrapped.ApplyStyles == null ? null : Wrapped.ApplyStyles.ToNullable();
			_summaryBelow = Wrapped.SummaryBelow == null ? null : Wrapped.SummaryBelow.ToNullable();
			_summaryRight = Wrapped.SummaryRight == null ? null : Wrapped.SummaryRight.ToNullable();
			_showOutlineSymbols = Wrapped.ShowOutlineSymbols == null ? null : Wrapped.ShowOutlineSymbols.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OutlineProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OutlineProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OutlineProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ApplyStyles = _applyStyles.HasValue ? _applyStyles.ToBooleanValue() : null;
				result.SummaryBelow = _summaryBelow.HasValue ? _summaryBelow.ToBooleanValue() : null;
				result.SummaryRight = _summaryRight.HasValue ? _summaryRight.ToBooleanValue() : null;
				result.ShowOutlineSymbols = _showOutlineSymbols.HasValue ? _showOutlineSymbols.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PageSetupPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties>
	{
		private string _localName;
		private Nullable<bool> _autoPageBreaks;
		private Nullable<bool> _fitToPage;

		/// <summary>
		/// Initializes a new instance of the <see cref="PageSetupPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PageSetupPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoPageBreaks"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoPageBreaks
		{
			get { return _autoPageBreaks; }
			set { OnAutoPageBreaksPropertyChanging(ref value, _autoPageBreaks); SetModified(value, _autoPageBreaks); _autoPageBreaks = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FitToPage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> instance.
		/// </summary>
		public Nullable<bool> FitToPage
		{
			get { return _fitToPage; }
			set { OnFitToPagePropertyChanging(ref value, _fitToPage); SetModified(value, _fitToPage); _fitToPage = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAutoPageBreaksPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFitToPagePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_autoPageBreaks = default(Nullable<bool>);
			_fitToPage = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_autoPageBreaks = Wrapped.AutoPageBreaks == null ? null : Wrapped.AutoPageBreaks.ToNullable();
			_fitToPage = Wrapped.FitToPage == null ? null : Wrapped.FitToPage.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.PageSetupProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.AutoPageBreaks = _autoPageBreaks.HasValue ? _autoPageBreaks.ToBooleanValue() : null;
				result.FitToPage = _fitToPage.HasValue ? _fitToPage.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TabColorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TabColor>
	{
		private string _localName;
		private Nullable<bool> _auto;
		private Nullable<uint> _indexed;
		private string _rgb;
		private Nullable<uint> _theme;
		private Nullable<double> _tint;

		/// <summary>
		/// Initializes a new instance of the <see cref="TabColorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TabColorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TabColor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Auto"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public Nullable<bool> Auto
		{
			get { return _auto; }
			set { OnAutoPropertyChanging(ref value, _auto); SetModified(value, _auto); _auto = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Indexed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public Nullable<uint> Indexed
		{
			get { return _indexed; }
			set { OnIndexedPropertyChanging(ref value, _indexed); SetModified(value, _indexed); _indexed = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rgb"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public string Rgb
		{
			get { return _rgb; }
			set { OnRgbPropertyChanging(ref value, _rgb); SetModified(value, _rgb); _rgb = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Theme"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public Nullable<uint> Theme
		{
			get { return _theme; }
			set { OnThemePropertyChanging(ref value, _theme); SetModified(value, _theme); _theme = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Tint"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.
		/// </summary>
		public Nullable<double> Tint
		{
			get { return _tint; }
			set { OnTintPropertyChanging(ref value, _tint); SetModified(value, _tint); _tint = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnAutoPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIndexedPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnRgbPropertyChanging(ref string modified, string original);
		partial void OnThemePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTintPropertyChanging(ref Nullable<double> modified, Nullable<double> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_auto = default(Nullable<bool>);
			_indexed = default(Nullable<uint>);
			_rgb = default(string);
			_theme = default(Nullable<uint>);
			_tint = default(Nullable<double>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_auto = Wrapped.Auto == null ? null : Wrapped.Auto.ToNullable();
			_indexed = Wrapped.Indexed == null ? null : Wrapped.Indexed.ToNullable();
			_rgb = Wrapped.Rgb == null ? null : Wrapped.Rgb.ToString();
			_theme = Wrapped.Theme == null ? null : Wrapped.Theme.ToNullable();
			_tint = Wrapped.Tint == null ? null : Wrapped.Tint.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TabColor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TabColor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TabColor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Auto = _auto.HasValue ? _auto.ToBooleanValue() : null;
				result.Indexed = _indexed.HasValue ? _indexed.ToUInt32Value() : null;
				result.Rgb = _rgb == null ? null : HexBinaryValue.FromString(_rgb);
				result.Theme = _theme.HasValue ? _theme.ToUInt32Value() : null;
				result.Tint = _tint.HasValue ? _tint.ToDoubleValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomProperties>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CustomPropertyWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CustomPropertyWrapperCollection CustomProperties { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CustomProperties = new ExtremeML.Spreadsheet.CustomPropertyWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CustomProperties = new ExtremeML.Spreadsheet.CustomPropertyWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CustomProperties.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CustomProperties;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomPropertyWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CustomProperty>
	{
		private string _localName;
		private string _name;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomPropertyWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomPropertyWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CustomProperty wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CustomProperty"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CustomProperty Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CustomProperty();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatches"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellWatchesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellWatches>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellWatchesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatches"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellWatchesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellWatches wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatches"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellWatchWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellWatchWrapperCollection CellWatchs { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CellWatchs = new ExtremeML.Spreadsheet.CellWatchWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CellWatchs = new ExtremeML.Spreadsheet.CellWatchWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatches"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellWatches Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellWatches();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CellWatchs.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellWatchs;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatch"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellWatchWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellWatch>
	{
		private string _localName;
		private string _cellReference;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellWatchWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatch"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellWatchWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellWatch wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatch"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatch"/> instance.
		/// </summary>
		public string CellReference
		{
			get { return _cellReference; }
			set { OnCellReferencePropertyChanging(ref value, _cellReference); SetModified(value, _cellReference); _cellReference = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCellReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cellReference = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cellReference = Wrapped.CellReference == null ? null : Wrapped.CellReference.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellWatch"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellWatch Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellWatch();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CellReference = _cellReference == null ? null : StringValue.FromString(_cellReference);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IgnoredErrorsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="IgnoredErrorsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IgnoredErrorsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.IgnoredErrorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.IgnoredErrorWrapperCollection IgnoredErrors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			IgnoredErrors = new ExtremeML.Spreadsheet.IgnoredErrorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			IgnoredErrors = new ExtremeML.Spreadsheet.IgnoredErrorWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.IgnoredErrors();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				IgnoredErrors.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return IgnoredErrors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IgnoredErrorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.IgnoredError>
	{
		private string _localName;
		private Nullable<bool> _evalError;
		private Nullable<bool> _twoDigitTextYear;
		private Nullable<bool> _numberStoredAsText;
		private Nullable<bool> _formula;
		private Nullable<bool> _formulaRange;
		private Nullable<bool> _unlockedFormula;
		private Nullable<bool> _emptyCellReference;
		private Nullable<bool> _listDataValidation;
		private Nullable<bool> _calculatedColumn;

		/// <summary>
		/// Initializes a new instance of the <see cref="IgnoredErrorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IgnoredErrorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.IgnoredError wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EvalError"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> EvalError
		{
			get { return _evalError; }
			set { OnEvalErrorPropertyChanging(ref value, _evalError); SetModified(value, _evalError); _evalError = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TwoDigitTextYear"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> TwoDigitTextYear
		{
			get { return _twoDigitTextYear; }
			set { OnTwoDigitTextYearPropertyChanging(ref value, _twoDigitTextYear); SetModified(value, _twoDigitTextYear); _twoDigitTextYear = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NumberStoredAsText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> NumberStoredAsText
		{
			get { return _numberStoredAsText; }
			set { OnNumberStoredAsTextPropertyChanging(ref value, _numberStoredAsText); SetModified(value, _numberStoredAsText); _numberStoredAsText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Formula"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> Formula
		{
			get { return _formula; }
			set { OnFormulaPropertyChanging(ref value, _formula); SetModified(value, _formula); _formula = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormulaRange"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> FormulaRange
		{
			get { return _formulaRange; }
			set { OnFormulaRangePropertyChanging(ref value, _formulaRange); SetModified(value, _formulaRange); _formulaRange = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UnlockedFormula"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> UnlockedFormula
		{
			get { return _unlockedFormula; }
			set { OnUnlockedFormulaPropertyChanging(ref value, _unlockedFormula); SetModified(value, _unlockedFormula); _unlockedFormula = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EmptyCellReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> EmptyCellReference
		{
			get { return _emptyCellReference; }
			set { OnEmptyCellReferencePropertyChanging(ref value, _emptyCellReference); SetModified(value, _emptyCellReference); _emptyCellReference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ListDataValidation"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> ListDataValidation
		{
			get { return _listDataValidation; }
			set { OnListDataValidationPropertyChanging(ref value, _listDataValidation); SetModified(value, _listDataValidation); _listDataValidation = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CalculatedColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.
		/// </summary>
		public Nullable<bool> CalculatedColumn
		{
			get { return _calculatedColumn; }
			set { OnCalculatedColumnPropertyChanging(ref value, _calculatedColumn); SetModified(value, _calculatedColumn); _calculatedColumn = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnEvalErrorPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTwoDigitTextYearPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnNumberStoredAsTextPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFormulaPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFormulaRangePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUnlockedFormulaPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnEmptyCellReferencePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnListDataValidationPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCalculatedColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_evalError = default(Nullable<bool>);
			_twoDigitTextYear = default(Nullable<bool>);
			_numberStoredAsText = default(Nullable<bool>);
			_formula = default(Nullable<bool>);
			_formulaRange = default(Nullable<bool>);
			_unlockedFormula = default(Nullable<bool>);
			_emptyCellReference = default(Nullable<bool>);
			_listDataValidation = default(Nullable<bool>);
			_calculatedColumn = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_evalError = Wrapped.EvalError == null ? null : Wrapped.EvalError.ToNullable();
			_twoDigitTextYear = Wrapped.TwoDigitTextYear == null ? null : Wrapped.TwoDigitTextYear.ToNullable();
			_numberStoredAsText = Wrapped.NumberStoredAsText == null ? null : Wrapped.NumberStoredAsText.ToNullable();
			_formula = Wrapped.Formula == null ? null : Wrapped.Formula.ToNullable();
			_formulaRange = Wrapped.FormulaRange == null ? null : Wrapped.FormulaRange.ToNullable();
			_unlockedFormula = Wrapped.UnlockedFormula == null ? null : Wrapped.UnlockedFormula.ToNullable();
			_emptyCellReference = Wrapped.EmptyCellReference == null ? null : Wrapped.EmptyCellReference.ToNullable();
			_listDataValidation = Wrapped.ListDataValidation == null ? null : Wrapped.ListDataValidation.ToNullable();
			_calculatedColumn = Wrapped.CalculatedColumn == null ? null : Wrapped.CalculatedColumn.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.IgnoredError"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.IgnoredError Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.IgnoredError();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.EvalError = _evalError.HasValue ? _evalError.ToBooleanValue() : null;
				result.TwoDigitTextYear = _twoDigitTextYear.HasValue ? _twoDigitTextYear.ToBooleanValue() : null;
				result.NumberStoredAsText = _numberStoredAsText.HasValue ? _numberStoredAsText.ToBooleanValue() : null;
				result.Formula = _formula.HasValue ? _formula.ToBooleanValue() : null;
				result.FormulaRange = _formulaRange.HasValue ? _formulaRange.ToBooleanValue() : null;
				result.UnlockedFormula = _unlockedFormula.HasValue ? _unlockedFormula.ToBooleanValue() : null;
				result.EmptyCellReference = _emptyCellReference.HasValue ? _emptyCellReference.ToBooleanValue() : null;
				result.ListDataValidation = _listDataValidation.HasValue ? _listDataValidation.ToBooleanValue() : null;
				result.CalculatedColumn = _calculatedColumn.HasValue ? _calculatedColumn.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTags"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SmartTagsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.SmartTags>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="SmartTagsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTags"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SmartTagsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.SmartTags wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTags"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellSmartTagsWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellSmartTagsWrapperCollection CellSmartTagss { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			CellSmartTagss = new ExtremeML.Spreadsheet.CellSmartTagsWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			CellSmartTagss = new ExtremeML.Spreadsheet.CellSmartTagsWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.SmartTags"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.SmartTags Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.SmartTags();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				CellSmartTagss.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellSmartTagss;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTags"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellSmartTagsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellSmartTags>
	{
		private string _localName;
		private string _cellReference;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellSmartTagsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTags"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellSmartTagsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellSmartTags wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTags"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CellReference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTags"/> instance.
		/// </summary>
		public string CellReference
		{
			get { return _cellReference; }
			set { OnCellReferencePropertyChanging(ref value, _cellReference); SetModified(value, _cellReference); _cellReference = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellSmartTagWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellSmartTagWrapper CellSmartTag { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCellReferencePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_cellReference = default(string);
			CellSmartTag = new ExtremeML.Spreadsheet.CellSmartTagWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_cellReference = Wrapped.CellReference == null ? null : Wrapped.CellReference.ToString();
			CellSmartTag = new ExtremeML.Spreadsheet.CellSmartTagWrapper(Wrapped.CellSmartTag, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTags"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellSmartTags Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellSmartTags();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.CellReference = _cellReference == null ? null : StringValue.FromString(_cellReference);
				result.CellSmartTag = CellSmartTag.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellSmartTag;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellSmartTagWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellSmartTag>
	{
		private string _localName;
		private Nullable<uint> _type;
		private Nullable<bool> _deleted;
		private Nullable<bool> _xmlBased;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellSmartTagWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellSmartTagWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellSmartTag wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> instance.
		/// </summary>
		public Nullable<uint> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Deleted"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> instance.
		/// </summary>
		public Nullable<bool> Deleted
		{
			get { return _deleted; }
			set { OnDeletedPropertyChanging(ref value, _deleted); SetModified(value, _deleted); _deleted = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XmlBased"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> instance.
		/// </summary>
		public Nullable<bool> XmlBased
		{
			get { return _xmlBased; }
			set { OnXmlBasedPropertyChanging(ref value, _xmlBased); SetModified(value, _xmlBased); _xmlBased = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapperCollection CellSmartTagPropertySets { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDeletedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXmlBasedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<uint>);
			_deleted = default(Nullable<bool>);
			_xmlBased = default(Nullable<bool>);
			CellSmartTagPropertySets = new ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_type = Wrapped.Type == null ? null : Wrapped.Type.ToNullable();
			_deleted = Wrapped.Deleted == null ? null : Wrapped.Deleted.ToNullable();
			_xmlBased = Wrapped.XmlBased == null ? null : Wrapped.XmlBased.ToNullable();
			CellSmartTagPropertySets = new ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTag"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellSmartTag Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellSmartTag();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type.HasValue ? _type.ToUInt32Value() : null;
				result.Deleted = _deleted.HasValue ? _deleted.ToBooleanValue() : null;
				result.XmlBased = _xmlBased.HasValue ? _xmlBased.ToBooleanValue() : null;
				CellSmartTagPropertySets.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CellSmartTagPropertySets;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellSmartTagPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties>
	{
		private string _localName;
		private string _key;
		private string _val;

		/// <summary>
		/// Initializes a new instance of the <see cref="CellSmartTagPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellSmartTagPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Key"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> instance.
		/// </summary>
		public string Key
		{
			get { return _key; }
			set { OnKeyPropertyChanging(ref value, _key); SetModified(value, _key); _key = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnKeyPropertyChanging(ref string modified, string original);
		partial void OnValPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_key = default(string);
			_val = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_key = Wrapped.Key == null ? null : Wrapped.Key.ToString();
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Key = _key == null ? null : StringValue.FromString(_key);
				result.Val = _val == null ? null : StringValue.FromString(_val);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Drawing"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DrawingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Drawing>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="DrawingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Drawing"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DrawingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Drawing wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Drawing"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Drawing"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Drawing"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Drawing Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Drawing();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LegacyDrawingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="LegacyDrawingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LegacyDrawingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class LegacyDrawingHeaderFooterWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="LegacyDrawingHeaderFooterWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal LegacyDrawingHeaderFooterWrapper(
			DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.LegacyDrawingHeaderFooter();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Picture"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PictureWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Picture>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="PictureWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Picture"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PictureWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Picture wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Picture"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Picture"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Picture"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Picture Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Picture();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObjects"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OleObjectsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OleObjects>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="OleObjectsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObjects"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OleObjectsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OleObjects wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObjects"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.OleObjectWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.OleObjectWrapperCollection OleObjects { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			OleObjects = new ExtremeML.Spreadsheet.OleObjectWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			OleObjects = new ExtremeML.Spreadsheet.OleObjectWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObjects"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OleObjects Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OleObjects();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				OleObjects.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return OleObjects;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OleObjectWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.OleObject>
	{
		private string _localName;
		private string _progId;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.DataViewAspectValues> _dataOrViewAspect;
		private string _link;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.OleUpdateValues> _oleUpdate;
		private Nullable<bool> _autoLoad;
		private Nullable<uint> _shapeId;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="OleObjectWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OleObjectWrapper(
			DocumentFormat.OpenXml.Spreadsheet.OleObject wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ProgId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public string ProgId
		{
			get { return _progId; }
			set { OnProgIdPropertyChanging(ref value, _progId); SetModified(value, _progId); _progId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataOrViewAspect"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.DataViewAspectValues> DataOrViewAspect
		{
			get { return _dataOrViewAspect; }
			set { OnDataOrViewAspectPropertyChanging(ref value, _dataOrViewAspect); SetModified(value, _dataOrViewAspect); _dataOrViewAspect = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Link"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public string Link
		{
			get { return _link; }
			set { OnLinkPropertyChanging(ref value, _link); SetModified(value, _link); _link = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OleUpdate"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.OleUpdateValues> OleUpdate
		{
			get { return _oleUpdate; }
			set { OnOleUpdatePropertyChanging(ref value, _oleUpdate); SetModified(value, _oleUpdate); _oleUpdate = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public Nullable<bool> AutoLoad
		{
			get { return _autoLoad; }
			set { OnAutoLoadPropertyChanging(ref value, _autoLoad); SetModified(value, _autoLoad); _autoLoad = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShapeId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public Nullable<uint> ShapeId
		{
			get { return _shapeId; }
			set { OnShapeIdPropertyChanging(ref value, _shapeId); SetModified(value, _shapeId); _shapeId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.EmbeddedObjectPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.EmbeddedObjectPropertiesWrapper EmbeddedObjectProperties { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnProgIdPropertyChanging(ref string modified, string original);
		partial void OnDataOrViewAspectPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.DataViewAspectValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.DataViewAspectValues> original);
		partial void OnLinkPropertyChanging(ref string modified, string original);
		partial void OnOleUpdatePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.OleUpdateValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.OleUpdateValues> original);
		partial void OnAutoLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShapeIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_progId = default(string);
			_dataOrViewAspect = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.DataViewAspectValues>);
			_link = default(string);
			_oleUpdate = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.OleUpdateValues>);
			_autoLoad = default(Nullable<bool>);
			_shapeId = default(Nullable<uint>);
			_id = default(string);
			EmbeddedObjectProperties = new ExtremeML.Spreadsheet.EmbeddedObjectPropertiesWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_progId = Wrapped.ProgId == null ? null : Wrapped.ProgId.ToString();
			_link = Wrapped.Link == null ? null : Wrapped.Link.ToString();
			_autoLoad = Wrapped.AutoLoad == null ? null : Wrapped.AutoLoad.ToNullable();
			_shapeId = Wrapped.ShapeId == null ? null : Wrapped.ShapeId.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			if (Wrapped.DataOrViewAspect != null) _dataOrViewAspect = Wrapped.DataOrViewAspect;
			if (Wrapped.OleUpdate != null) _oleUpdate = Wrapped.OleUpdate;
			EmbeddedObjectProperties = new ExtremeML.Spreadsheet.EmbeddedObjectPropertiesWrapper(Wrapped.EmbeddedObjectProperties, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.OleObject"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.OleObject Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.OleObject();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.DataOrViewAspect = _dataOrViewAspect;
				result.OleUpdate = _oleUpdate;
				result.ProgId = _progId == null ? null : StringValue.FromString(_progId);
				result.Link = _link == null ? null : StringValue.FromString(_link);
				result.AutoLoad = _autoLoad.HasValue ? _autoLoad.ToBooleanValue() : null;
				result.ShapeId = _shapeId.HasValue ? _shapeId.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.EmbeddedObjectProperties = EmbeddedObjectProperties.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return EmbeddedObjectProperties;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EmbeddedObjectPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties>
	{
		private string _localName;
		private Nullable<bool> _locked;
		private Nullable<bool> _defaultSize;
		private Nullable<bool> _print;
		private Nullable<bool> _disabled;
		private Nullable<bool> _uiObject;
		private Nullable<bool> _autoFill;
		private Nullable<bool> _autoLine;
		private Nullable<bool> _autoPict;
		private string _macro;
		private string _altText;
		private Nullable<bool> _dde;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="EmbeddedObjectPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EmbeddedObjectPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Locked"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> Locked
		{
			get { return _locked; }
			set { OnLockedPropertyChanging(ref value, _locked); SetModified(value, _locked); _locked = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> DefaultSize
		{
			get { return _defaultSize; }
			set { OnDefaultSizePropertyChanging(ref value, _defaultSize); SetModified(value, _defaultSize); _defaultSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Print"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> Print
		{
			get { return _print; }
			set { OnPrintPropertyChanging(ref value, _print); SetModified(value, _print); _print = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Disabled"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> Disabled
		{
			get { return _disabled; }
			set { OnDisabledPropertyChanging(ref value, _disabled); SetModified(value, _disabled); _disabled = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UiObject"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> UiObject
		{
			get { return _uiObject; }
			set { OnUiObjectPropertyChanging(ref value, _uiObject); SetModified(value, _uiObject); _uiObject = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFill"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoFill
		{
			get { return _autoFill; }
			set { OnAutoFillPropertyChanging(ref value, _autoFill); SetModified(value, _autoFill); _autoFill = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoLine"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoLine
		{
			get { return _autoLine; }
			set { OnAutoLinePropertyChanging(ref value, _autoLine); SetModified(value, _autoLine); _autoLine = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoPict"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoPict
		{
			get { return _autoPict; }
			set { OnAutoPictPropertyChanging(ref value, _autoPict); SetModified(value, _autoPict); _autoPict = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Macro"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public string Macro
		{
			get { return _macro; }
			set { OnMacroPropertyChanging(ref value, _macro); SetModified(value, _macro); _macro = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AltText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public string AltText
		{
			get { return _altText; }
			set { OnAltTextPropertyChanging(ref value, _altText); SetModified(value, _altText); _altText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Dde"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public Nullable<bool> Dde
		{
			get { return _dde; }
			set { OnDdePropertyChanging(ref value, _dde); SetModified(value, _dde); _dde = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ObjectAnchorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ObjectAnchorWrapper ObjectAnchor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLockedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultSizePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPrintPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDisabledPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUiObjectPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoFillPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoLinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoPictPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMacroPropertyChanging(ref string modified, string original);
		partial void OnAltTextPropertyChanging(ref string modified, string original);
		partial void OnDdePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_locked = default(Nullable<bool>);
			_defaultSize = default(Nullable<bool>);
			_print = default(Nullable<bool>);
			_disabled = default(Nullable<bool>);
			_uiObject = default(Nullable<bool>);
			_autoFill = default(Nullable<bool>);
			_autoLine = default(Nullable<bool>);
			_autoPict = default(Nullable<bool>);
			_macro = default(string);
			_altText = default(string);
			_dde = default(Nullable<bool>);
			_id = default(string);
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_locked = Wrapped.Locked == null ? null : Wrapped.Locked.ToNullable();
			_defaultSize = Wrapped.DefaultSize == null ? null : Wrapped.DefaultSize.ToNullable();
			_print = Wrapped.Print == null ? null : Wrapped.Print.ToNullable();
			_disabled = Wrapped.Disabled == null ? null : Wrapped.Disabled.ToNullable();
			_uiObject = Wrapped.UiObject == null ? null : Wrapped.UiObject.ToNullable();
			_autoFill = Wrapped.AutoFill == null ? null : Wrapped.AutoFill.ToNullable();
			_autoLine = Wrapped.AutoLine == null ? null : Wrapped.AutoLine.ToNullable();
			_autoPict = Wrapped.AutoPict == null ? null : Wrapped.AutoPict.ToNullable();
			_macro = Wrapped.Macro == null ? null : Wrapped.Macro.ToString();
			_altText = Wrapped.AltText == null ? null : Wrapped.AltText.ToString();
			_dde = Wrapped.Dde == null ? null : Wrapped.Dde.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(Wrapped.ObjectAnchor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.EmbeddedObjectProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Locked = _locked.HasValue ? _locked.ToBooleanValue() : null;
				result.DefaultSize = _defaultSize.HasValue ? _defaultSize.ToBooleanValue() : null;
				result.Print = _print.HasValue ? _print.ToBooleanValue() : null;
				result.Disabled = _disabled.HasValue ? _disabled.ToBooleanValue() : null;
				result.UiObject = _uiObject.HasValue ? _uiObject.ToBooleanValue() : null;
				result.AutoFill = _autoFill.HasValue ? _autoFill.ToBooleanValue() : null;
				result.AutoLine = _autoLine.HasValue ? _autoLine.ToBooleanValue() : null;
				result.AutoPict = _autoPict.HasValue ? _autoPict.ToBooleanValue() : null;
				result.Macro = _macro == null ? null : StringValue.FromString(_macro);
				result.AltText = _altText == null ? null : StringValue.FromString(_altText);
				result.Dde = _dde.HasValue ? _dde.ToBooleanValue() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.ObjectAnchor = ObjectAnchor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ObjectAnchor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ObjectAnchorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor>
	{
		private string _localName;
		private Nullable<bool> _moveWithCells;
		private Nullable<bool> _sizeWithCells;
		private Nullable<uint> _zOrder;

		/// <summary>
		/// Initializes a new instance of the <see cref="ObjectAnchorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ObjectAnchorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MoveWithCells"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> instance.
		/// </summary>
		public Nullable<bool> MoveWithCells
		{
			get { return _moveWithCells; }
			set { OnMoveWithCellsPropertyChanging(ref value, _moveWithCells); SetModified(value, _moveWithCells); _moveWithCells = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SizeWithCells"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> instance.
		/// </summary>
		public Nullable<bool> SizeWithCells
		{
			get { return _sizeWithCells; }
			set { OnSizeWithCellsPropertyChanging(ref value, _sizeWithCells); SetModified(value, _sizeWithCells); _sizeWithCells = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ZOrder"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> instance.
		/// </summary>
		public Nullable<uint> ZOrder
		{
			get { return _zOrder; }
			set { OnZOrderPropertyChanging(ref value, _zOrder); SetModified(value, _zOrder); _zOrder = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FromMarkerWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FromMarkerWrapper FromMarker { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ToMarkerWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ToMarkerWrapper ToMarker { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnMoveWithCellsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSizeWithCellsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnZOrderPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_moveWithCells = default(Nullable<bool>);
			_sizeWithCells = default(Nullable<bool>);
			_zOrder = default(Nullable<uint>);
			FromMarker = new ExtremeML.Spreadsheet.FromMarkerWrapper(null, this, Package);
			ToMarker = new ExtremeML.Spreadsheet.ToMarkerWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_moveWithCells = Wrapped.MoveWithCells == null ? null : Wrapped.MoveWithCells.ToNullable();
			_sizeWithCells = Wrapped.SizeWithCells == null ? null : Wrapped.SizeWithCells.ToNullable();
			_zOrder = Wrapped.ZOrder == null ? null : Wrapped.ZOrder.ToNullable();
			FromMarker = new ExtremeML.Spreadsheet.FromMarkerWrapper(Wrapped.FromMarker, this, Package);
			ToMarker = new ExtremeML.Spreadsheet.ToMarkerWrapper(Wrapped.ToMarker, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ObjectAnchor();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.MoveWithCells = _moveWithCells.HasValue ? _moveWithCells.ToBooleanValue() : null;
				result.SizeWithCells = _sizeWithCells.HasValue ? _sizeWithCells.ToBooleanValue() : null;
				result.ZOrder = _zOrder.HasValue ? _zOrder.ToUInt32Value() : null;
				result.FromMarker = FromMarker.Recompose();
				result.ToMarker = ToMarker.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return FromMarker;
			yield return ToMarker;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.FromMarker"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FromMarkerWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.FromMarker>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="FromMarkerWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.FromMarker"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FromMarkerWrapper(
			DocumentFormat.OpenXml.Spreadsheet.FromMarker wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.FromMarker"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper ColumnId { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper ColumnOffset { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.RowIdWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.RowIdWrapper RowId { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper RowOffset { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ColumnId = new ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper(null, this, Package);
			ColumnOffset = new ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper(null, this, Package);
			RowId = new ExtremeML.Drawing.Spreadsheet.RowIdWrapper(null, this, Package);
			RowOffset = new ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ColumnId = new ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper(Wrapped.ColumnId, this, Package);
			ColumnOffset = new ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper(Wrapped.ColumnOffset, this, Package);
			RowId = new ExtremeML.Drawing.Spreadsheet.RowIdWrapper(Wrapped.RowId, this, Package);
			RowOffset = new ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper(Wrapped.RowOffset, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.FromMarker"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.FromMarker Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.FromMarker();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ColumnId = ColumnId.Recompose();
				result.ColumnOffset = ColumnOffset.Recompose();
				result.RowId = RowId.Recompose();
				result.RowOffset = RowOffset.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ColumnId;
			yield return ColumnOffset;
			yield return RowId;
			yield return RowOffset;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Drawing.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnOffsetWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnOffsetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnOffsetWrapper(
			DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnOffset();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RowIdWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="RowIdWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RowIdWrapper(
			DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Spreadsheet.RowId();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnIdWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnIdWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnIdWrapper(
			DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Spreadsheet.ColumnId();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Drawing.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RowOffsetWrapper : ElementWrapper<DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="RowOffsetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RowOffsetWrapper(
			DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset"/> instance.</returns>
		internal DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Drawing.Spreadsheet.RowOffset();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ToMarker"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ToMarkerWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ToMarker>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ToMarkerWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ToMarker"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ToMarkerWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ToMarker wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ToMarker"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper ColumnId { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper ColumnOffset { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.RowIdWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.RowIdWrapper RowId { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper RowOffset { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ColumnId = new ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper(null, this, Package);
			ColumnOffset = new ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper(null, this, Package);
			RowId = new ExtremeML.Drawing.Spreadsheet.RowIdWrapper(null, this, Package);
			RowOffset = new ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ColumnId = new ExtremeML.Drawing.Spreadsheet.ColumnIdWrapper(Wrapped.ColumnId, this, Package);
			ColumnOffset = new ExtremeML.Drawing.Spreadsheet.ColumnOffsetWrapper(Wrapped.ColumnOffset, this, Package);
			RowId = new ExtremeML.Drawing.Spreadsheet.RowIdWrapper(Wrapped.RowId, this, Package);
			RowOffset = new ExtremeML.Drawing.Spreadsheet.RowOffsetWrapper(Wrapped.RowOffset, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ToMarker"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ToMarker Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ToMarker();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ColumnId = ColumnId.Recompose();
				result.ColumnOffset = ColumnOffset.Recompose();
				result.RowId = RowId.Recompose();
				result.RowOffset = RowOffset.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ColumnId;
			yield return ColumnOffset;
			yield return RowId;
			yield return RowOffset;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Controls"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ControlsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Controls>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ControlsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Controls"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ControlsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Controls wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Controls"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ControlWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ControlWrapperCollection Controls { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Controls = new ExtremeML.Spreadsheet.ControlWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Controls = new ExtremeML.Spreadsheet.ControlWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Controls"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Controls Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Controls();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Controls.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Controls;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ControlWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Control>
	{
		private string _localName;
		private Nullable<uint> _shapeId;
		private string _id;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="ControlWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ControlWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Control wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShapeId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> instance.
		/// </summary>
		public Nullable<uint> ShapeId
		{
			get { return _shapeId; }
			set { OnShapeIdPropertyChanging(ref value, _shapeId); SetModified(value, _shapeId); _shapeId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ControlPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ControlPropertiesWrapper ControlProperties { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnShapeIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnIdPropertyChanging(ref string modified, string original);
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_shapeId = default(Nullable<uint>);
			_id = default(string);
			_name = default(string);
			ControlProperties = new ExtremeML.Spreadsheet.ControlPropertiesWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_shapeId = Wrapped.ShapeId == null ? null : Wrapped.ShapeId.ToNullable();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			ControlProperties = new ExtremeML.Spreadsheet.ControlPropertiesWrapper(Wrapped.ControlProperties, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Control"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Control Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Control();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.ShapeId = _shapeId.HasValue ? _shapeId.ToUInt32Value() : null;
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.ControlProperties = ControlProperties.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ControlProperties;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ControlPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ControlProperties>
	{
		private string _localName;
		private Nullable<bool> _locked;
		private Nullable<bool> _defaultSize;
		private Nullable<bool> _print;
		private Nullable<bool> _disabled;
		private Nullable<bool> _recalcAlways;
		private Nullable<bool> _uiObject;
		private Nullable<bool> _autoFill;
		private Nullable<bool> _autoLine;
		private Nullable<bool> _autoPict;
		private string _macro;
		private string _altText;
		private string _linkedCell;
		private string _listFillRange;
		private string _cf;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="ControlPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ControlPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ControlProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Locked"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> Locked
		{
			get { return _locked; }
			set { OnLockedPropertyChanging(ref value, _locked); SetModified(value, _locked); _locked = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> DefaultSize
		{
			get { return _defaultSize; }
			set { OnDefaultSizePropertyChanging(ref value, _defaultSize); SetModified(value, _defaultSize); _defaultSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Print"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> Print
		{
			get { return _print; }
			set { OnPrintPropertyChanging(ref value, _print); SetModified(value, _print); _print = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Disabled"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> Disabled
		{
			get { return _disabled; }
			set { OnDisabledPropertyChanging(ref value, _disabled); SetModified(value, _disabled); _disabled = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RecalcAlways"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> RecalcAlways
		{
			get { return _recalcAlways; }
			set { OnRecalcAlwaysPropertyChanging(ref value, _recalcAlways); SetModified(value, _recalcAlways); _recalcAlways = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UiObject"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> UiObject
		{
			get { return _uiObject; }
			set { OnUiObjectPropertyChanging(ref value, _uiObject); SetModified(value, _uiObject); _uiObject = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFill"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoFill
		{
			get { return _autoFill; }
			set { OnAutoFillPropertyChanging(ref value, _autoFill); SetModified(value, _autoFill); _autoFill = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoLine"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoLine
		{
			get { return _autoLine; }
			set { OnAutoLinePropertyChanging(ref value, _autoLine); SetModified(value, _autoLine); _autoLine = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoPict"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoPict
		{
			get { return _autoPict; }
			set { OnAutoPictPropertyChanging(ref value, _autoPict); SetModified(value, _autoPict); _autoPict = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Macro"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string Macro
		{
			get { return _macro; }
			set { OnMacroPropertyChanging(ref value, _macro); SetModified(value, _macro); _macro = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AltText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string AltText
		{
			get { return _altText; }
			set { OnAltTextPropertyChanging(ref value, _altText); SetModified(value, _altText); _altText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LinkedCell"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string LinkedCell
		{
			get { return _linkedCell; }
			set { OnLinkedCellPropertyChanging(ref value, _linkedCell); SetModified(value, _linkedCell); _linkedCell = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ListFillRange"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string ListFillRange
		{
			get { return _listFillRange; }
			set { OnListFillRangePropertyChanging(ref value, _listFillRange); SetModified(value, _listFillRange); _listFillRange = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Cf"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string Cf
		{
			get { return _cf; }
			set { OnCfPropertyChanging(ref value, _cf); SetModified(value, _cf); _cf = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ObjectAnchorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ObjectAnchorWrapper ObjectAnchor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLockedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultSizePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPrintPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDisabledPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRecalcAlwaysPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUiObjectPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoFillPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoLinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoPictPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMacroPropertyChanging(ref string modified, string original);
		partial void OnAltTextPropertyChanging(ref string modified, string original);
		partial void OnLinkedCellPropertyChanging(ref string modified, string original);
		partial void OnListFillRangePropertyChanging(ref string modified, string original);
		partial void OnCfPropertyChanging(ref string modified, string original);
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_locked = default(Nullable<bool>);
			_defaultSize = default(Nullable<bool>);
			_print = default(Nullable<bool>);
			_disabled = default(Nullable<bool>);
			_recalcAlways = default(Nullable<bool>);
			_uiObject = default(Nullable<bool>);
			_autoFill = default(Nullable<bool>);
			_autoLine = default(Nullable<bool>);
			_autoPict = default(Nullable<bool>);
			_macro = default(string);
			_altText = default(string);
			_linkedCell = default(string);
			_listFillRange = default(string);
			_cf = default(string);
			_id = default(string);
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_locked = Wrapped.Locked == null ? null : Wrapped.Locked.ToNullable();
			_defaultSize = Wrapped.DefaultSize == null ? null : Wrapped.DefaultSize.ToNullable();
			_print = Wrapped.Print == null ? null : Wrapped.Print.ToNullable();
			_disabled = Wrapped.Disabled == null ? null : Wrapped.Disabled.ToNullable();
			_recalcAlways = Wrapped.RecalcAlways == null ? null : Wrapped.RecalcAlways.ToNullable();
			_uiObject = Wrapped.UiObject == null ? null : Wrapped.UiObject.ToNullable();
			_autoFill = Wrapped.AutoFill == null ? null : Wrapped.AutoFill.ToNullable();
			_autoLine = Wrapped.AutoLine == null ? null : Wrapped.AutoLine.ToNullable();
			_autoPict = Wrapped.AutoPict == null ? null : Wrapped.AutoPict.ToNullable();
			_macro = Wrapped.Macro == null ? null : Wrapped.Macro.ToString();
			_altText = Wrapped.AltText == null ? null : Wrapped.AltText.ToString();
			_linkedCell = Wrapped.LinkedCell == null ? null : Wrapped.LinkedCell.ToString();
			_listFillRange = Wrapped.ListFillRange == null ? null : Wrapped.ListFillRange.ToString();
			_cf = Wrapped.Cf == null ? null : Wrapped.Cf.ToString();
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(Wrapped.ObjectAnchor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ControlProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ControlProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ControlProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Locked = _locked.HasValue ? _locked.ToBooleanValue() : null;
				result.DefaultSize = _defaultSize.HasValue ? _defaultSize.ToBooleanValue() : null;
				result.Print = _print.HasValue ? _print.ToBooleanValue() : null;
				result.Disabled = _disabled.HasValue ? _disabled.ToBooleanValue() : null;
				result.RecalcAlways = _recalcAlways.HasValue ? _recalcAlways.ToBooleanValue() : null;
				result.UiObject = _uiObject.HasValue ? _uiObject.ToBooleanValue() : null;
				result.AutoFill = _autoFill.HasValue ? _autoFill.ToBooleanValue() : null;
				result.AutoLine = _autoLine.HasValue ? _autoLine.ToBooleanValue() : null;
				result.AutoPict = _autoPict.HasValue ? _autoPict.ToBooleanValue() : null;
				result.Macro = _macro == null ? null : StringValue.FromString(_macro);
				result.AltText = _altText == null ? null : StringValue.FromString(_altText);
				result.LinkedCell = _linkedCell == null ? null : StringValue.FromString(_linkedCell);
				result.ListFillRange = _listFillRange == null ? null : StringValue.FromString(_listFillRange);
				result.Cf = _cf == null ? null : StringValue.FromString(_cf);
				result.Id = _id == null ? null : StringValue.FromString(_id);
				result.ObjectAnchor = ObjectAnchor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ObjectAnchor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItems"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishItemsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WebPublishItems>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishItemsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItems"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishItemsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WebPublishItems wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItems"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItems"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.WebPublishItemWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.WebPublishItemWrapperCollection WebPublishItems { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			WebPublishItems = new ExtremeML.Spreadsheet.WebPublishItemWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			WebPublishItems = new ExtremeML.Spreadsheet.WebPublishItemWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItems"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WebPublishItems Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WebPublishItems();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				WebPublishItems.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return WebPublishItems;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishItemWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.WebPublishItem>
	{
		private string _localName;
		private Nullable<uint> _id;
		private string _divId;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.WebSourceValues> _sourceType;
		private string _sourceRef;
		private string _sourceObject;
		private string _destinationFile;
		private string _title;
		private Nullable<bool> _autoRepublish;

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishItemWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishItemWrapper(
			DocumentFormat.OpenXml.Spreadsheet.WebPublishItem wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DivId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string DivId
		{
			get { return _divId; }
			set { OnDivIdPropertyChanging(ref value, _divId); SetModified(value, _divId); _divId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SourceType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.WebSourceValues> SourceType
		{
			get { return _sourceType; }
			set { OnSourceTypePropertyChanging(ref value, _sourceType); SetModified(value, _sourceType); _sourceType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SourceRef"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string SourceRef
		{
			get { return _sourceRef; }
			set { OnSourceRefPropertyChanging(ref value, _sourceRef); SetModified(value, _sourceRef); _sourceRef = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="SourceObject"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string SourceObject
		{
			get { return _sourceObject; }
			set { OnSourceObjectPropertyChanging(ref value, _sourceObject); SetModified(value, _sourceObject); _sourceObject = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DestinationFile"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string DestinationFile
		{
			get { return _destinationFile; }
			set { OnDestinationFilePropertyChanging(ref value, _destinationFile); SetModified(value, _destinationFile); _destinationFile = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Title"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public string Title
		{
			get { return _title; }
			set { OnTitlePropertyChanging(ref value, _title); SetModified(value, _title); _title = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoRepublish"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.
		/// </summary>
		public Nullable<bool> AutoRepublish
		{
			get { return _autoRepublish; }
			set { OnAutoRepublishPropertyChanging(ref value, _autoRepublish); SetModified(value, _autoRepublish); _autoRepublish = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDivIdPropertyChanging(ref string modified, string original);
		partial void OnSourceTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.WebSourceValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.WebSourceValues> original);
		partial void OnSourceRefPropertyChanging(ref string modified, string original);
		partial void OnSourceObjectPropertyChanging(ref string modified, string original);
		partial void OnDestinationFilePropertyChanging(ref string modified, string original);
		partial void OnTitlePropertyChanging(ref string modified, string original);
		partial void OnAutoRepublishPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_divId = default(string);
			_sourceType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.WebSourceValues>);
			_sourceRef = default(string);
			_sourceObject = default(string);
			_destinationFile = default(string);
			_title = default(string);
			_autoRepublish = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_divId = Wrapped.DivId == null ? null : Wrapped.DivId.ToString();
			_sourceRef = Wrapped.SourceRef == null ? null : Wrapped.SourceRef.ToString();
			_sourceObject = Wrapped.SourceObject == null ? null : Wrapped.SourceObject.ToString();
			_destinationFile = Wrapped.DestinationFile == null ? null : Wrapped.DestinationFile.ToString();
			_title = Wrapped.Title == null ? null : Wrapped.Title.ToString();
			_autoRepublish = Wrapped.AutoRepublish == null ? null : Wrapped.AutoRepublish.ToNullable();
			if (Wrapped.SourceType != null) _sourceType = Wrapped.SourceType;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.WebPublishItem"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.WebPublishItem Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.WebPublishItem();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.SourceType = _sourceType;
				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.DivId = _divId == null ? null : StringValue.FromString(_divId);
				result.SourceRef = _sourceRef == null ? null : StringValue.FromString(_sourceRef);
				result.SourceObject = _sourceObject == null ? null : StringValue.FromString(_sourceObject);
				result.DestinationFile = _destinationFile == null ? null : StringValue.FromString(_destinationFile);
				result.Title = _title == null ? null : StringValue.FromString(_title);
				result.AutoRepublish = _autoRepublish.HasValue ? _autoRepublish.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableParts"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TablePartsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableParts>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="TablePartsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableParts"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TablePartsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableParts wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableParts"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableParts"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TablePartWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TablePartWrapperCollection TableParts { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			TableParts = new ExtremeML.Spreadsheet.TablePartWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			TableParts = new ExtremeML.Spreadsheet.TablePartWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableParts"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableParts Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableParts();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				TableParts.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return TableParts;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TablePart"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TablePartWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TablePart>
	{
		private string _localName;
		private string _id;

		/// <summary>
		/// Initializes a new instance of the <see cref="TablePartWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TablePart"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TablePartWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TablePart wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TablePart"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TablePart"/> instance.
		/// </summary>
		public string Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TablePart"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TablePart Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TablePart();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id == null ? null : StringValue.FromString(_id);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormattingWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting>
	{
		private string _localName;
		private Nullable<bool> _pivot;

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormattingWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormattingWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Pivot"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting"/> instance.
		/// </summary>
		public Nullable<bool> Pivot
		{
			get { return _pivot; }
			set { OnPivotPropertyChanging(ref value, _pivot); SetModified(value, _pivot); _pivot = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapperCollection ConditionalFormattingRules { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPivotPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_pivot = default(Nullable<bool>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
			ConditionalFormattingRules = new ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_pivot = Wrapped.Pivot == null ? null : Wrapped.Pivot.ToNullable();
			ConditionalFormattingRules = new ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapperCollection(Wrapped, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Pivot = _pivot.HasValue ? _pivot.ToBooleanValue() : null;
				ConditionalFormattingRules.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExtensionList>();
				result.AppendChild(ExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;
			yield return ConditionalFormattingRules;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormattingRuleWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues> _type;
		private Nullable<uint> _formatId;
		private Nullable<int> _priority;
		private Nullable<bool> _stopIfTrue;
		private Nullable<bool> _aboveAverage;
		private Nullable<bool> _percent;
		private Nullable<bool> _bottom;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues> _operator;
		private string _text;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues> _timePeriod;
		private Nullable<uint> _rank;
		private Nullable<int> _stdDev;
		private Nullable<bool> _equalAverage;

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormattingRuleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormattingRuleWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<uint> FormatId
		{
			get { return _formatId; }
			set { OnFormatIdPropertyChanging(ref value, _formatId); SetModified(value, _formatId); _formatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Priority"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<int> Priority
		{
			get { return _priority; }
			set { OnPriorityPropertyChanging(ref value, _priority); SetModified(value, _priority); _priority = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StopIfTrue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<bool> StopIfTrue
		{
			get { return _stopIfTrue; }
			set { OnStopIfTruePropertyChanging(ref value, _stopIfTrue); SetModified(value, _stopIfTrue); _stopIfTrue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AboveAverage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<bool> AboveAverage
		{
			get { return _aboveAverage; }
			set { OnAboveAveragePropertyChanging(ref value, _aboveAverage); SetModified(value, _aboveAverage); _aboveAverage = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Percent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<bool> Percent
		{
			get { return _percent; }
			set { OnPercentPropertyChanging(ref value, _percent); SetModified(value, _percent); _percent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Bottom"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<bool> Bottom
		{
			get { return _bottom; }
			set { OnBottomPropertyChanging(ref value, _bottom); SetModified(value, _bottom); _bottom = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Operator"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues> Operator
		{
			get { return _operator; }
			set { OnOperatorPropertyChanging(ref value, _operator); SetModified(value, _operator); _operator = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Text"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public string Text
		{
			get { return _text; }
			set { OnTextPropertyChanging(ref value, _text); SetModified(value, _text); _text = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TimePeriod"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues> TimePeriod
		{
			get { return _timePeriod; }
			set { OnTimePeriodPropertyChanging(ref value, _timePeriod); SetModified(value, _timePeriod); _timePeriod = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Rank"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<uint> Rank
		{
			get { return _rank; }
			set { OnRankPropertyChanging(ref value, _rank); SetModified(value, _rank); _rank = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="StdDev"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<int> StdDev
		{
			get { return _stdDev; }
			set { OnStdDevPropertyChanging(ref value, _stdDev); SetModified(value, _stdDev); _stdDev = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="EqualAverage"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.
		/// </summary>
		public Nullable<bool> EqualAverage
		{
			get { return _equalAverage; }
			set { OnEqualAveragePropertyChanging(ref value, _equalAverage); SetModified(value, _equalAverage); _equalAverage = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorScaleWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorScaleWrapper ColorScale { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DataBarWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DataBarWrapper DataBar { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.IconSetWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.IconSetWrapper IconSet { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormattingRuleExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormattingRuleExtensionListWrapper ConditionalFormattingRuleExtensionList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.FormulaWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.FormulaWrapperCollection Formulas { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues> original);
		partial void OnFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnPriorityPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnStopIfTruePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAboveAveragePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPercentPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBottomPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOperatorPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues> original);
		partial void OnTextPropertyChanging(ref string modified, string original);
		partial void OnTimePeriodPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues> original);
		partial void OnRankPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnStdDevPropertyChanging(ref Nullable<int> modified, Nullable<int> original);
		partial void OnEqualAveragePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValues>);
			_formatId = default(Nullable<uint>);
			_priority = default(Nullable<int>);
			_stopIfTrue = default(Nullable<bool>);
			_aboveAverage = default(Nullable<bool>);
			_percent = default(Nullable<bool>);
			_bottom = default(Nullable<bool>);
			_operator = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingOperatorValues>);
			_text = default(string);
			_timePeriod = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TimePeriodValues>);
			_rank = default(Nullable<uint>);
			_stdDev = default(Nullable<int>);
			_equalAverage = default(Nullable<bool>);
			ColorScale = new ExtremeML.Spreadsheet.ColorScaleWrapper(null, this, Package);
			DataBar = new ExtremeML.Spreadsheet.DataBarWrapper(null, this, Package);
			IconSet = new ExtremeML.Spreadsheet.IconSetWrapper(null, this, Package);
			ConditionalFormattingRuleExtensionList = new ExtremeML.Spreadsheet.ConditionalFormattingRuleExtensionListWrapper(null, this, Package);
			Formulas = new ExtremeML.Spreadsheet.FormulaWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_formatId = Wrapped.FormatId == null ? null : Wrapped.FormatId.ToNullable();
			_priority = Wrapped.Priority == null ? null : Wrapped.Priority.ToNullable();
			_stopIfTrue = Wrapped.StopIfTrue == null ? null : Wrapped.StopIfTrue.ToNullable();
			_aboveAverage = Wrapped.AboveAverage == null ? null : Wrapped.AboveAverage.ToNullable();
			_percent = Wrapped.Percent == null ? null : Wrapped.Percent.ToNullable();
			_bottom = Wrapped.Bottom == null ? null : Wrapped.Bottom.ToNullable();
			_text = Wrapped.Text == null ? null : Wrapped.Text.ToString();
			_rank = Wrapped.Rank == null ? null : Wrapped.Rank.ToNullable();
			_stdDev = Wrapped.StdDev == null ? null : Wrapped.StdDev.ToNullable();
			_equalAverage = Wrapped.EqualAverage == null ? null : Wrapped.EqualAverage.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
			if (Wrapped.Operator != null) _operator = Wrapped.Operator;
			if (Wrapped.TimePeriod != null) _timePeriod = Wrapped.TimePeriod;
			Formulas = new ExtremeML.Spreadsheet.FormulaWrapperCollection(Wrapped, this, Package);
			ColorScale = new ExtremeML.Spreadsheet.ColorScaleWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ColorScale>(), this, Package);
			DataBar = new ExtremeML.Spreadsheet.DataBarWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.DataBar>(), this, Package);
			IconSet = new ExtremeML.Spreadsheet.IconSetWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.IconSet>(), this, Package);
			ConditionalFormattingRuleExtensionList = new ExtremeML.Spreadsheet.ConditionalFormattingRuleExtensionListWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Operator = _operator;
				result.TimePeriod = _timePeriod;
				result.FormatId = _formatId.HasValue ? _formatId.ToUInt32Value() : null;
				result.Priority = _priority.HasValue ? _priority.ToInt32Value() : null;
				result.StopIfTrue = _stopIfTrue.HasValue ? _stopIfTrue.ToBooleanValue() : null;
				result.AboveAverage = _aboveAverage.HasValue ? _aboveAverage.ToBooleanValue() : null;
				result.Percent = _percent.HasValue ? _percent.ToBooleanValue() : null;
				result.Bottom = _bottom.HasValue ? _bottom.ToBooleanValue() : null;
				result.Text = _text == null ? null : StringValue.FromString(_text);
				result.Rank = _rank.HasValue ? _rank.ToUInt32Value() : null;
				result.StdDev = _stdDev.HasValue ? _stdDev.ToInt32Value() : null;
				result.EqualAverage = _equalAverage.HasValue ? _equalAverage.ToBooleanValue() : null;
				Formulas.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ColorScale>();
				result.AppendChild(ColorScale.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DataBar>();
				result.AppendChild(DataBar.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.IconSet>();
				result.AppendChild(IconSet.Recompose());
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList>();
				result.AppendChild(ConditionalFormattingRuleExtensionList.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ColorScale;
			yield return DataBar;
			yield return IconSet;
			yield return ConditionalFormattingRuleExtensionList;
			yield return Formulas;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorScale"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorScaleWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ColorScale>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorScaleWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorScale"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorScaleWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ColorScale wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorScale"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection ConditionalFormatValueObjects { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapperCollection Colors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(null, this, Package);
			Colors = new ExtremeML.Spreadsheet.ColorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(Wrapped, this, Package);
			Colors = new ExtremeML.Spreadsheet.ColorWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ColorScale"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ColorScale Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ColorScale();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				ConditionalFormatValueObjects.Recompose(result);
				Colors.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ConditionalFormatValueObjects;
			yield return Colors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormatValueObjectWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObjectValues> _type;
		private string _val;
		private Nullable<bool> _greaterThanOrEqual;

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormatValueObjectWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormatValueObjectWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Type"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObjectValues> Type
		{
			get { return _type; }
			set { OnTypePropertyChanging(ref value, _type); SetModified(value, _type); _type = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Val"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> instance.
		/// </summary>
		public string Val
		{
			get { return _val; }
			set { OnValPropertyChanging(ref value, _val); SetModified(value, _val); _val = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GreaterThanOrEqual"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> instance.
		/// </summary>
		public Nullable<bool> GreaterThanOrEqual
		{
			get { return _greaterThanOrEqual; }
			set { OnGreaterThanOrEqualPropertyChanging(ref value, _greaterThanOrEqual); SetModified(value, _greaterThanOrEqual); _greaterThanOrEqual = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObjectValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObjectValues> original);
		partial void OnValPropertyChanging(ref string modified, string original);
		partial void OnGreaterThanOrEqualPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_type = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObjectValues>);
			_val = default(string);
			_greaterThanOrEqual = default(Nullable<bool>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_val = Wrapped.Val == null ? null : Wrapped.Val.ToString();
			_greaterThanOrEqual = Wrapped.GreaterThanOrEqual == null ? null : Wrapped.GreaterThanOrEqual.ToNullable();
			if (Wrapped.Type != null) _type = Wrapped.Type;
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Type = _type;
				result.Val = _val == null ? null : StringValue.FromString(_val);
				result.GreaterThanOrEqual = _greaterThanOrEqual.HasValue ? _greaterThanOrEqual.ToBooleanValue() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataBarWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DataBar>
	{
		private string _localName;
		private Nullable<uint> _minLength;
		private Nullable<uint> _maxLength;
		private Nullable<bool> _showValue;

		/// <summary>
		/// Initializes a new instance of the <see cref="DataBarWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataBarWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DataBar wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MinLength"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> instance.
		/// </summary>
		public Nullable<uint> MinLength
		{
			get { return _minLength; }
			set { OnMinLengthPropertyChanging(ref value, _minLength); SetModified(value, _minLength); _minLength = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MaxLength"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> instance.
		/// </summary>
		public Nullable<uint> MaxLength
		{
			get { return _maxLength; }
			set { OnMaxLengthPropertyChanging(ref value, _maxLength); SetModified(value, _maxLength); _maxLength = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> instance.
		/// </summary>
		public Nullable<bool> ShowValue
		{
			get { return _showValue; }
			set { OnShowValuePropertyChanging(ref value, _showValue); SetModified(value, _showValue); _showValue = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColorWrapper Color { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection ConditionalFormatValueObjects { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnMinLengthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMaxLengthPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnShowValuePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_minLength = default(Nullable<uint>);
			_maxLength = default(Nullable<uint>);
			_showValue = default(Nullable<bool>);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(null, this, Package);
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_minLength = Wrapped.MinLength == null ? null : Wrapped.MinLength.ToNullable();
			_maxLength = Wrapped.MaxLength == null ? null : Wrapped.MaxLength.ToNullable();
			_showValue = Wrapped.ShowValue == null ? null : Wrapped.ShowValue.ToNullable();
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(Wrapped, this, Package);
			Color = new ExtremeML.Spreadsheet.ColorWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Color>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DataBar"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DataBar Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DataBar();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.MinLength = _minLength.HasValue ? _minLength.ToUInt32Value() : null;
				result.MaxLength = _maxLength.HasValue ? _maxLength.ToUInt32Value() : null;
				result.ShowValue = _showValue.HasValue ? _showValue.ToBooleanValue() : null;
				ConditionalFormatValueObjects.Recompose(result);
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Color>();
				result.AppendChild(Color.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Color;
			yield return ConditionalFormatValueObjects;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IconSetWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.IconSet>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> _iconSetValue;
		private Nullable<bool> _showValue;
		private Nullable<bool> _percent;
		private Nullable<bool> _reverse;

		/// <summary>
		/// Initializes a new instance of the <see cref="IconSetWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IconSetWrapper(
			DocumentFormat.OpenXml.Spreadsheet.IconSet wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="IconSetValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> IconSetValue
		{
			get { return _iconSetValue; }
			set { OnIconSetValuePropertyChanging(ref value, _iconSetValue); SetModified(value, _iconSetValue); _iconSetValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowValue"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.
		/// </summary>
		public Nullable<bool> ShowValue
		{
			get { return _showValue; }
			set { OnShowValuePropertyChanging(ref value, _showValue); SetModified(value, _showValue); _showValue = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Percent"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.
		/// </summary>
		public Nullable<bool> Percent
		{
			get { return _percent; }
			set { OnPercentPropertyChanging(ref value, _percent); SetModified(value, _percent); _percent = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reverse"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.
		/// </summary>
		public Nullable<bool> Reverse
		{
			get { return _reverse; }
			set { OnReversePropertyChanging(ref value, _reverse); SetModified(value, _reverse); _reverse = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection ConditionalFormatValueObjects { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIconSetValuePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues> original);
		partial void OnShowValuePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPercentPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnReversePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_iconSetValue = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.IconSetValues>);
			_showValue = default(Nullable<bool>);
			_percent = default(Nullable<bool>);
			_reverse = default(Nullable<bool>);
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_showValue = Wrapped.ShowValue == null ? null : Wrapped.ShowValue.ToNullable();
			_percent = Wrapped.Percent == null ? null : Wrapped.Percent.ToNullable();
			_reverse = Wrapped.Reverse == null ? null : Wrapped.Reverse.ToNullable();
			if (Wrapped.IconSetValue != null) _iconSetValue = Wrapped.IconSetValue;
			ConditionalFormatValueObjects = new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.IconSet"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.IconSet Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.IconSet();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.IconSetValue = _iconSetValue;
				result.ShowValue = _showValue.HasValue ? _showValue.ToBooleanValue() : null;
				result.Percent = _percent.HasValue ? _percent.ToBooleanValue() : null;
				result.Reverse = _reverse.HasValue ? _reverse.ToBooleanValue() : null;
				ConditionalFormatValueObjects.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ConditionalFormatValueObjects;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormattingRuleExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormattingRuleExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormattingRuleExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRuleExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FormulaWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Formula>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="FormulaWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FormulaWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Formula wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Formula"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Formula Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Formula();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Columns"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Columns>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Columns"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Columns wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Columns"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ColumnWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ColumnWrapperCollection Columns { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Columns = new ExtremeML.Spreadsheet.ColumnWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Columns = new ExtremeML.Spreadsheet.ColumnWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Columns"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Columns Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Columns();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Columns.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Columns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Column>
	{
		private string _localName;
		private Nullable<uint> _min;
		private Nullable<uint> _max;
		private Nullable<double> _width;
		private Nullable<uint> _style;
		private Nullable<bool> _hidden;
		private Nullable<bool> _bestFit;
		private Nullable<bool> _customWidth;
		private Nullable<bool> _phonetic;
		private Nullable<byte> _outlineLevel;
		private Nullable<bool> _collapsed;

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Column wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Min"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<uint> Min
		{
			get { return _min; }
			set { OnMinPropertyChanging(ref value, _min); SetModified(value, _min); _min = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Max"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<uint> Max
		{
			get { return _max; }
			set { OnMaxPropertyChanging(ref value, _max); SetModified(value, _max); _max = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Width"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<double> Width
		{
			get { return _width; }
			set { OnWidthPropertyChanging(ref value, _width); SetModified(value, _width); _width = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Style"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<uint> Style
		{
			get { return _style; }
			set { OnStylePropertyChanging(ref value, _style); SetModified(value, _style); _style = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Hidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<bool> Hidden
		{
			get { return _hidden; }
			set { OnHiddenPropertyChanging(ref value, _hidden); SetModified(value, _hidden); _hidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BestFit"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<bool> BestFit
		{
			get { return _bestFit; }
			set { OnBestFitPropertyChanging(ref value, _bestFit); SetModified(value, _bestFit); _bestFit = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="CustomWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<bool> CustomWidth
		{
			get { return _customWidth; }
			set { OnCustomWidthPropertyChanging(ref value, _customWidth); SetModified(value, _customWidth); _customWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Phonetic"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<bool> Phonetic
		{
			get { return _phonetic; }
			set { OnPhoneticPropertyChanging(ref value, _phonetic); SetModified(value, _phonetic); _phonetic = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="OutlineLevel"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<byte> OutlineLevel
		{
			get { return _outlineLevel; }
			set { OnOutlineLevelPropertyChanging(ref value, _outlineLevel); SetModified(value, _outlineLevel); _outlineLevel = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Collapsed"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.
		/// </summary>
		public Nullable<bool> Collapsed
		{
			get { return _collapsed; }
			set { OnCollapsedPropertyChanging(ref value, _collapsed); SetModified(value, _collapsed); _collapsed = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnMinPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnMaxPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnWidthPropertyChanging(ref Nullable<double> modified, Nullable<double> original);
		partial void OnStylePropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBestFitPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnCustomWidthPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPhoneticPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnOutlineLevelPropertyChanging(ref Nullable<byte> modified, Nullable<byte> original);
		partial void OnCollapsedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_min = default(Nullable<uint>);
			_max = default(Nullable<uint>);
			_width = default(Nullable<double>);
			_style = default(Nullable<uint>);
			_hidden = default(Nullable<bool>);
			_bestFit = default(Nullable<bool>);
			_customWidth = default(Nullable<bool>);
			_phonetic = default(Nullable<bool>);
			_outlineLevel = default(Nullable<byte>);
			_collapsed = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_min = Wrapped.Min == null ? null : Wrapped.Min.ToNullable();
			_max = Wrapped.Max == null ? null : Wrapped.Max.ToNullable();
			_width = Wrapped.Width == null ? null : Wrapped.Width.ToNullable();
			_style = Wrapped.Style == null ? null : Wrapped.Style.ToNullable();
			_hidden = Wrapped.Hidden == null ? null : Wrapped.Hidden.ToNullable();
			_bestFit = Wrapped.BestFit == null ? null : Wrapped.BestFit.ToNullable();
			_customWidth = Wrapped.CustomWidth == null ? null : Wrapped.CustomWidth.ToNullable();
			_phonetic = Wrapped.Phonetic == null ? null : Wrapped.Phonetic.ToNullable();
			_outlineLevel = Wrapped.OutlineLevel == null ? null : Wrapped.OutlineLevel.ToNullable();
			_collapsed = Wrapped.Collapsed == null ? null : Wrapped.Collapsed.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Column"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Column Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Column();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Min = _min.HasValue ? _min.ToUInt32Value() : null;
				result.Max = _max.HasValue ? _max.ToUInt32Value() : null;
				result.Width = _width.HasValue ? _width.ToDoubleValue() : null;
				result.Style = _style.HasValue ? _style.ToUInt32Value() : null;
				result.Hidden = _hidden.HasValue ? _hidden.ToBooleanValue() : null;
				result.BestFit = _bestFit.HasValue ? _bestFit.ToBooleanValue() : null;
				result.CustomWidth = _customWidth.HasValue ? _customWidth.ToBooleanValue() : null;
				result.Phonetic = _phonetic.HasValue ? _phonetic.ToBooleanValue() : null;
				result.OutlineLevel = _outlineLevel.HasValue ? _outlineLevel.ToByteValue() : null;
				result.Collapsed = _collapsed.HasValue ? _collapsed.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Comments"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Comments>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Comments"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Comments wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comments"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AuthorsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AuthorsWrapper Authors { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CommentListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CommentListWrapper CommentList { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Authors = new ExtremeML.Spreadsheet.AuthorsWrapper(null, this, Package);
			CommentList = new ExtremeML.Spreadsheet.CommentListWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Authors = new ExtremeML.Spreadsheet.AuthorsWrapper(Wrapped.Authors, this, Package);
			CommentList = new ExtremeML.Spreadsheet.CommentListWrapper(Wrapped.CommentList, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Comments"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.Comments wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Authors = Authors.Recompose();
				result.CommentList = CommentList.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Authors;
			yield return CommentList;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Authors"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AuthorsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Authors>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="AuthorsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Authors"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AuthorsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Authors wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Authors"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AuthorWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AuthorWrapperCollection Authors { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Authors = new ExtremeML.Spreadsheet.AuthorWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Authors = new ExtremeML.Spreadsheet.AuthorWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Authors"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Authors Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Authors();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Authors.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Authors;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Author"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AuthorWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Author>
	{
		private string _localName;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="AuthorWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Author"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AuthorWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Author wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Author"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Author"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Author"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Author Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Author();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CommentList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CommentList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CommentWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CommentWrapperCollection Comments { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Comments = new ExtremeML.Spreadsheet.CommentWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Comments = new ExtremeML.Spreadsheet.CommentWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CommentList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CommentList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Comments.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Comments;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Comment>
	{
		private string _localName;
		private string _reference;
		private Nullable<uint> _authorId;
		private string _guid;
		private Nullable<uint> _shapeId;

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Comment wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AuthorId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.
		/// </summary>
		public Nullable<uint> AuthorId
		{
			get { return _authorId; }
			set { OnAuthorIdPropertyChanging(ref value, _authorId); SetModified(value, _authorId); _authorId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Guid"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.
		/// </summary>
		public string Guid
		{
			get { return _guid; }
			set { OnGuidPropertyChanging(ref value, _guid); SetModified(value, _guid); _guid = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShapeId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.
		/// </summary>
		public Nullable<uint> ShapeId
		{
			get { return _shapeId; }
			set { OnShapeIdPropertyChanging(ref value, _shapeId); SetModified(value, _shapeId); _shapeId = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CommentTextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CommentTextWrapper CommentText { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CommentPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CommentPropertiesWrapper CommentProperties { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnReferencePropertyChanging(ref string modified, string original);
		partial void OnAuthorIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnGuidPropertyChanging(ref string modified, string original);
		partial void OnShapeIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_reference = default(string);
			_authorId = default(Nullable<uint>);
			_guid = default(string);
			_shapeId = default(Nullable<uint>);
			CommentText = new ExtremeML.Spreadsheet.CommentTextWrapper(null, this, Package);
			CommentProperties = new ExtremeML.Spreadsheet.CommentPropertiesWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			_authorId = Wrapped.AuthorId == null ? null : Wrapped.AuthorId.ToNullable();
			_guid = Wrapped.Guid == null ? null : Wrapped.Guid.ToString();
			_shapeId = Wrapped.ShapeId == null ? null : Wrapped.ShapeId.ToNullable();
			CommentText = new ExtremeML.Spreadsheet.CommentTextWrapper(Wrapped.CommentText, this, Package);
			CommentProperties = new ExtremeML.Spreadsheet.CommentPropertiesWrapper(Wrapped.CommentProperties, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.Comment"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.Comment Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.Comment();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				result.AuthorId = _authorId.HasValue ? _authorId.ToUInt32Value() : null;
				result.Guid = _guid == null ? null : StringValue.FromString(_guid);
				result.ShapeId = _shapeId.HasValue ? _shapeId.ToUInt32Value() : null;
				result.CommentText = CommentText.Recompose();
				result.CommentProperties = CommentProperties.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CommentText;
			yield return CommentProperties;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentText"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentTextWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CommentText>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentTextWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentText"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentTextWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CommentText wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentText"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TextWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TextWrapper Text { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticPropertiesWrapper PhoneticProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.RunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.RunWrapperCollection Runs { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.PhoneticRunWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.PhoneticRunWrapperCollection PhoneticRuns { get; private set; }
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			Text = new ExtremeML.Spreadsheet.TextWrapper(null, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(null, this, Package);
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(null, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			Runs = new ExtremeML.Spreadsheet.RunWrapperCollection(Wrapped, this, Package);
			PhoneticRuns = new ExtremeML.Spreadsheet.PhoneticRunWrapperCollection(Wrapped, this, Package);
			Text = new ExtremeML.Spreadsheet.TextWrapper(Wrapped.Text, this, Package);
			PhoneticProperties = new ExtremeML.Spreadsheet.PhoneticPropertiesWrapper(Wrapped.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>(), this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentText"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CommentText Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CommentText();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				Runs.Recompose(result);
				PhoneticRuns.Recompose(result);
				result.Text = Text.Recompose();
				result.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties>();
				result.AppendChild(PhoneticProperties.Recompose());

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return Text;
			yield return PhoneticProperties;
			yield return Runs;
			yield return PhoneticRuns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CommentProperties>
	{
		private string _localName;
		private Nullable<bool> _locked;
		private Nullable<bool> _defaultSize;
		private Nullable<bool> _print;
		private Nullable<bool> _disabled;
		private Nullable<bool> _uiObject;
		private Nullable<bool> _autoFill;
		private Nullable<bool> _autoLine;
		private string _altText;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TextHorizontalAlignmentValues> _textHAlign;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TextVerticalAlignmentValues> _textVAlign;
		private Nullable<bool> _lockText;
		private Nullable<bool> _justLastX;
		private Nullable<bool> _autoScale;
		private Nullable<bool> _rowHidden;
		private Nullable<bool> _colHidden;

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CommentProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Locked"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> Locked
		{
			get { return _locked; }
			set { OnLockedPropertyChanging(ref value, _locked); SetModified(value, _locked); _locked = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DefaultSize"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> DefaultSize
		{
			get { return _defaultSize; }
			set { OnDefaultSizePropertyChanging(ref value, _defaultSize); SetModified(value, _defaultSize); _defaultSize = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Print"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> Print
		{
			get { return _print; }
			set { OnPrintPropertyChanging(ref value, _print); SetModified(value, _print); _print = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Disabled"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> Disabled
		{
			get { return _disabled; }
			set { OnDisabledPropertyChanging(ref value, _disabled); SetModified(value, _disabled); _disabled = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UiObject"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> UiObject
		{
			get { return _uiObject; }
			set { OnUiObjectPropertyChanging(ref value, _uiObject); SetModified(value, _uiObject); _uiObject = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFill"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoFill
		{
			get { return _autoFill; }
			set { OnAutoFillPropertyChanging(ref value, _autoFill); SetModified(value, _autoFill); _autoFill = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoLine"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoLine
		{
			get { return _autoLine; }
			set { OnAutoLinePropertyChanging(ref value, _autoLine); SetModified(value, _autoLine); _autoLine = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AltText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public string AltText
		{
			get { return _altText; }
			set { OnAltTextPropertyChanging(ref value, _altText); SetModified(value, _altText); _altText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TextHAlign"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TextHorizontalAlignmentValues> TextHAlign
		{
			get { return _textHAlign; }
			set { OnTextHAlignPropertyChanging(ref value, _textHAlign); SetModified(value, _textHAlign); _textHAlign = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TextVAlign"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TextVerticalAlignmentValues> TextVAlign
		{
			get { return _textVAlign; }
			set { OnTextVAlignPropertyChanging(ref value, _textVAlign); SetModified(value, _textVAlign); _textVAlign = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="LockText"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> LockText
		{
			get { return _lockText; }
			set { OnLockTextPropertyChanging(ref value, _lockText); SetModified(value, _lockText); _lockText = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="JustLastX"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> JustLastX
		{
			get { return _justLastX; }
			set { OnJustLastXPropertyChanging(ref value, _justLastX); SetModified(value, _justLastX); _justLastX = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoScale"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> AutoScale
		{
			get { return _autoScale; }
			set { OnAutoScalePropertyChanging(ref value, _autoScale); SetModified(value, _autoScale); _autoScale = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RowHidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> RowHidden
		{
			get { return _rowHidden; }
			set { OnRowHiddenPropertyChanging(ref value, _rowHidden); SetModified(value, _rowHidden); _rowHidden = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ColHidden"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.
		/// </summary>
		public Nullable<bool> ColHidden
		{
			get { return _colHidden; }
			set { OnColHiddenPropertyChanging(ref value, _colHidden); SetModified(value, _colHidden); _colHidden = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ObjectAnchorWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ObjectAnchorWrapper ObjectAnchor { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnLockedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDefaultSizePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPrintPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDisabledPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnUiObjectPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoFillPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoLinePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAltTextPropertyChanging(ref string modified, string original);
		partial void OnTextHAlignPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TextHorizontalAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TextHorizontalAlignmentValues> original);
		partial void OnTextVAlignPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TextVerticalAlignmentValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TextVerticalAlignmentValues> original);
		partial void OnLockTextPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnJustLastXPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAutoScalePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRowHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnColHiddenPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_locked = default(Nullable<bool>);
			_defaultSize = default(Nullable<bool>);
			_print = default(Nullable<bool>);
			_disabled = default(Nullable<bool>);
			_uiObject = default(Nullable<bool>);
			_autoFill = default(Nullable<bool>);
			_autoLine = default(Nullable<bool>);
			_altText = default(string);
			_textHAlign = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TextHorizontalAlignmentValues>);
			_textVAlign = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TextVerticalAlignmentValues>);
			_lockText = default(Nullable<bool>);
			_justLastX = default(Nullable<bool>);
			_autoScale = default(Nullable<bool>);
			_rowHidden = default(Nullable<bool>);
			_colHidden = default(Nullable<bool>);
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_locked = Wrapped.Locked == null ? null : Wrapped.Locked.ToNullable();
			_defaultSize = Wrapped.DefaultSize == null ? null : Wrapped.DefaultSize.ToNullable();
			_print = Wrapped.Print == null ? null : Wrapped.Print.ToNullable();
			_disabled = Wrapped.Disabled == null ? null : Wrapped.Disabled.ToNullable();
			_uiObject = Wrapped.UiObject == null ? null : Wrapped.UiObject.ToNullable();
			_autoFill = Wrapped.AutoFill == null ? null : Wrapped.AutoFill.ToNullable();
			_autoLine = Wrapped.AutoLine == null ? null : Wrapped.AutoLine.ToNullable();
			_altText = Wrapped.AltText == null ? null : Wrapped.AltText.ToString();
			_lockText = Wrapped.LockText == null ? null : Wrapped.LockText.ToNullable();
			_justLastX = Wrapped.JustLastX == null ? null : Wrapped.JustLastX.ToNullable();
			_autoScale = Wrapped.AutoScale == null ? null : Wrapped.AutoScale.ToNullable();
			_rowHidden = Wrapped.RowHidden == null ? null : Wrapped.RowHidden.ToNullable();
			_colHidden = Wrapped.ColHidden == null ? null : Wrapped.ColHidden.ToNullable();
			if (Wrapped.TextHAlign != null) _textHAlign = Wrapped.TextHAlign;
			if (Wrapped.TextVAlign != null) _textVAlign = Wrapped.TextVAlign;
			ObjectAnchor = new ExtremeML.Spreadsheet.ObjectAnchorWrapper(Wrapped.ObjectAnchor, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CommentProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CommentProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CommentProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.TextHAlign = _textHAlign;
				result.TextVAlign = _textVAlign;
				result.Locked = _locked.HasValue ? _locked.ToBooleanValue() : null;
				result.DefaultSize = _defaultSize.HasValue ? _defaultSize.ToBooleanValue() : null;
				result.Print = _print.HasValue ? _print.ToBooleanValue() : null;
				result.Disabled = _disabled.HasValue ? _disabled.ToBooleanValue() : null;
				result.UiObject = _uiObject.HasValue ? _uiObject.ToBooleanValue() : null;
				result.AutoFill = _autoFill.HasValue ? _autoFill.ToBooleanValue() : null;
				result.AutoLine = _autoLine.HasValue ? _autoLine.ToBooleanValue() : null;
				result.AltText = _altText == null ? null : StringValue.FromString(_altText);
				result.LockText = _lockText.HasValue ? _lockText.ToBooleanValue() : null;
				result.JustLastX = _justLastX.HasValue ? _justLastX.ToBooleanValue() : null;
				result.AutoScale = _autoScale.HasValue ? _autoScale.ToBooleanValue() : null;
				result.RowHidden = _rowHidden.HasValue ? _rowHidden.ToBooleanValue() : null;
				result.ColHidden = _colHidden.HasValue ? _colHidden.ToBooleanValue() : null;
				result.ObjectAnchor = ObjectAnchor.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ObjectAnchor;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.Table>
	{
		private string _localName;
		private Nullable<uint> _id;
		private string _name;
		private string _displayName;
		private string _comment;
		private string _reference;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TableValues> _tableType;
		private Nullable<uint> _headerRowCount;
		private Nullable<bool> _insertRow;
		private Nullable<bool> _insertRowShift;
		private Nullable<uint> _totalsRowCount;
		private Nullable<bool> _totalsRowShown;
		private Nullable<bool> _published;
		private Nullable<uint> _headerRowFormatId;
		private Nullable<uint> _dataFormatId;
		private Nullable<uint> _totalsRowFormatId;
		private Nullable<uint> _headerRowBorderFormatId;
		private Nullable<uint> _borderFormatId;
		private Nullable<uint> _totalsRowBorderFormatId;
		private string _headerRowCellStyle;
		private string _dataCellStyle;
		private string _totalsRowCellStyle;
		private Nullable<uint> _connectionId;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableWrapper(
			DocumentFormat.OpenXml.Spreadsheet.Table wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DisplayName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string DisplayName
		{
			get { return _displayName; }
			set { OnDisplayNamePropertyChanging(ref value, _displayName); SetModified(value, _displayName); _displayName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Comment"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string Comment
		{
			get { return _comment; }
			set { OnCommentPropertyChanging(ref value, _comment); SetModified(value, _comment); _comment = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Reference"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string Reference
		{
			get { return _reference; }
			set { OnReferencePropertyChanging(ref value, _reference); SetModified(value, _reference); _reference = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TableType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TableValues> TableType
		{
			get { return _tableType; }
			set { OnTableTypePropertyChanging(ref value, _tableType); SetModified(value, _tableType); _tableType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> HeaderRowCount
		{
			get { return _headerRowCount; }
			set { OnHeaderRowCountPropertyChanging(ref value, _headerRowCount); SetModified(value, _headerRowCount); _headerRowCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InsertRow"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<bool> InsertRow
		{
			get { return _insertRow; }
			set { OnInsertRowPropertyChanging(ref value, _insertRow); SetModified(value, _insertRow); _insertRow = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="InsertRowShift"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<bool> InsertRowShift
		{
			get { return _insertRowShift; }
			set { OnInsertRowShiftPropertyChanging(ref value, _insertRowShift); SetModified(value, _insertRowShift); _insertRowShift = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowCount"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> TotalsRowCount
		{
			get { return _totalsRowCount; }
			set { OnTotalsRowCountPropertyChanging(ref value, _totalsRowCount); SetModified(value, _totalsRowCount); _totalsRowCount = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowShown"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<bool> TotalsRowShown
		{
			get { return _totalsRowShown; }
			set { OnTotalsRowShownPropertyChanging(ref value, _totalsRowShown); SetModified(value, _totalsRowShown); _totalsRowShown = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Published"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<bool> Published
		{
			get { return _published; }
			set { OnPublishedPropertyChanging(ref value, _published); SetModified(value, _published); _published = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> HeaderRowFormatId
		{
			get { return _headerRowFormatId; }
			set { OnHeaderRowFormatIdPropertyChanging(ref value, _headerRowFormatId); SetModified(value, _headerRowFormatId); _headerRowFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> DataFormatId
		{
			get { return _dataFormatId; }
			set { OnDataFormatIdPropertyChanging(ref value, _dataFormatId); SetModified(value, _dataFormatId); _dataFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> TotalsRowFormatId
		{
			get { return _totalsRowFormatId; }
			set { OnTotalsRowFormatIdPropertyChanging(ref value, _totalsRowFormatId); SetModified(value, _totalsRowFormatId); _totalsRowFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowBorderFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> HeaderRowBorderFormatId
		{
			get { return _headerRowBorderFormatId; }
			set { OnHeaderRowBorderFormatIdPropertyChanging(ref value, _headerRowBorderFormatId); SetModified(value, _headerRowBorderFormatId); _headerRowBorderFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BorderFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> BorderFormatId
		{
			get { return _borderFormatId; }
			set { OnBorderFormatIdPropertyChanging(ref value, _borderFormatId); SetModified(value, _borderFormatId); _borderFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowBorderFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> TotalsRowBorderFormatId
		{
			get { return _totalsRowBorderFormatId; }
			set { OnTotalsRowBorderFormatIdPropertyChanging(ref value, _totalsRowBorderFormatId); SetModified(value, _totalsRowBorderFormatId); _totalsRowBorderFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string HeaderRowCellStyle
		{
			get { return _headerRowCellStyle; }
			set { OnHeaderRowCellStylePropertyChanging(ref value, _headerRowCellStyle); SetModified(value, _headerRowCellStyle); _headerRowCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string DataCellStyle
		{
			get { return _dataCellStyle; }
			set { OnDataCellStylePropertyChanging(ref value, _dataCellStyle); SetModified(value, _dataCellStyle); _dataCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public string TotalsRowCellStyle
		{
			get { return _totalsRowCellStyle; }
			set { OnTotalsRowCellStylePropertyChanging(ref value, _totalsRowCellStyle); SetModified(value, _totalsRowCellStyle); _totalsRowCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ConnectionId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> instance.
		/// </summary>
		public Nullable<uint> ConnectionId
		{
			get { return _connectionId; }
			set { OnConnectionIdPropertyChanging(ref value, _connectionId); SetModified(value, _connectionId); _connectionId = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.AutoFilterWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.AutoFilterWrapper AutoFilter { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SortStateWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SortStateWrapper SortState { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableColumnsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableColumnsWrapper TableColumns { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableStyleInfoWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableStyleInfoWrapper TableStyleInfo { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableExtensionListWrapper TableExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnDisplayNamePropertyChanging(ref string modified, string original);
		partial void OnCommentPropertyChanging(ref string modified, string original);
		partial void OnReferencePropertyChanging(ref string modified, string original);
		partial void OnTableTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TableValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TableValues> original);
		partial void OnHeaderRowCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnInsertRowPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnInsertRowShiftPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTotalsRowCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTotalsRowShownPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPublishedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeaderRowFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDataFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTotalsRowFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHeaderRowBorderFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnBorderFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTotalsRowBorderFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHeaderRowCellStylePropertyChanging(ref string modified, string original);
		partial void OnDataCellStylePropertyChanging(ref string modified, string original);
		partial void OnTotalsRowCellStylePropertyChanging(ref string modified, string original);
		partial void OnConnectionIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Declares code that be must executed prior to initialization and decompose code.
		/// </summary>
		protected override void OnConstructing()
		{
			InitializeSequentialIdentifierPattern();
		}

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_name = default(string);
			_displayName = default(string);
			_comment = default(string);
			_reference = default(string);
			_tableType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TableValues>);
			_headerRowCount = default(Nullable<uint>);
			_insertRow = default(Nullable<bool>);
			_insertRowShift = default(Nullable<bool>);
			_totalsRowCount = default(Nullable<uint>);
			_totalsRowShown = default(Nullable<bool>);
			_published = default(Nullable<bool>);
			_headerRowFormatId = default(Nullable<uint>);
			_dataFormatId = default(Nullable<uint>);
			_totalsRowFormatId = default(Nullable<uint>);
			_headerRowBorderFormatId = default(Nullable<uint>);
			_borderFormatId = default(Nullable<uint>);
			_totalsRowBorderFormatId = default(Nullable<uint>);
			_headerRowCellStyle = default(string);
			_dataCellStyle = default(string);
			_totalsRowCellStyle = default(string);
			_connectionId = default(Nullable<uint>);
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(null, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(null, this, Package);
			TableColumns = new ExtremeML.Spreadsheet.TableColumnsWrapper(null, this, Package);
			TableStyleInfo = new ExtremeML.Spreadsheet.TableStyleInfoWrapper(null, this, Package);
			TableExtensionList = new ExtremeML.Spreadsheet.TableExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_displayName = Wrapped.DisplayName == null ? null : Wrapped.DisplayName.ToString();
			_comment = Wrapped.Comment == null ? null : Wrapped.Comment.ToString();
			_reference = Wrapped.Reference == null ? null : Wrapped.Reference.ToString();
			_headerRowCount = Wrapped.HeaderRowCount == null ? null : Wrapped.HeaderRowCount.ToNullable();
			_insertRow = Wrapped.InsertRow == null ? null : Wrapped.InsertRow.ToNullable();
			_insertRowShift = Wrapped.InsertRowShift == null ? null : Wrapped.InsertRowShift.ToNullable();
			_totalsRowCount = Wrapped.TotalsRowCount == null ? null : Wrapped.TotalsRowCount.ToNullable();
			_totalsRowShown = Wrapped.TotalsRowShown == null ? null : Wrapped.TotalsRowShown.ToNullable();
			_published = Wrapped.Published == null ? null : Wrapped.Published.ToNullable();
			_headerRowFormatId = Wrapped.HeaderRowFormatId == null ? null : Wrapped.HeaderRowFormatId.ToNullable();
			_dataFormatId = Wrapped.DataFormatId == null ? null : Wrapped.DataFormatId.ToNullable();
			_totalsRowFormatId = Wrapped.TotalsRowFormatId == null ? null : Wrapped.TotalsRowFormatId.ToNullable();
			_headerRowBorderFormatId = Wrapped.HeaderRowBorderFormatId == null ? null : Wrapped.HeaderRowBorderFormatId.ToNullable();
			_borderFormatId = Wrapped.BorderFormatId == null ? null : Wrapped.BorderFormatId.ToNullable();
			_totalsRowBorderFormatId = Wrapped.TotalsRowBorderFormatId == null ? null : Wrapped.TotalsRowBorderFormatId.ToNullable();
			_headerRowCellStyle = Wrapped.HeaderRowCellStyle == null ? null : Wrapped.HeaderRowCellStyle.ToString();
			_dataCellStyle = Wrapped.DataCellStyle == null ? null : Wrapped.DataCellStyle.ToString();
			_totalsRowCellStyle = Wrapped.TotalsRowCellStyle == null ? null : Wrapped.TotalsRowCellStyle.ToString();
			_connectionId = Wrapped.ConnectionId == null ? null : Wrapped.ConnectionId.ToNullable();
			if (Wrapped.TableType != null) _tableType = Wrapped.TableType;
			AutoFilter = new ExtremeML.Spreadsheet.AutoFilterWrapper(Wrapped.AutoFilter, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(Wrapped.SortState, this, Package);
			TableColumns = new ExtremeML.Spreadsheet.TableColumnsWrapper(Wrapped.TableColumns, this, Package);
			TableStyleInfo = new ExtremeML.Spreadsheet.TableStyleInfoWrapper(Wrapped.TableStyleInfo, this, Package);
			TableExtensionList = new ExtremeML.Spreadsheet.TableExtensionListWrapper(Wrapped.TableExtensionList, this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.Table wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.TableType = _tableType;
				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.DisplayName = _displayName == null ? null : StringValue.FromString(_displayName);
				result.Comment = _comment == null ? null : StringValue.FromString(_comment);
				result.Reference = _reference == null ? null : StringValue.FromString(_reference);
				result.HeaderRowCount = _headerRowCount.HasValue ? _headerRowCount.ToUInt32Value() : null;
				result.InsertRow = _insertRow.HasValue ? _insertRow.ToBooleanValue() : null;
				result.InsertRowShift = _insertRowShift.HasValue ? _insertRowShift.ToBooleanValue() : null;
				result.TotalsRowCount = _totalsRowCount.HasValue ? _totalsRowCount.ToUInt32Value() : null;
				result.TotalsRowShown = _totalsRowShown.HasValue ? _totalsRowShown.ToBooleanValue() : null;
				result.Published = _published.HasValue ? _published.ToBooleanValue() : null;
				result.HeaderRowFormatId = _headerRowFormatId.HasValue ? _headerRowFormatId.ToUInt32Value() : null;
				result.DataFormatId = _dataFormatId.HasValue ? _dataFormatId.ToUInt32Value() : null;
				result.TotalsRowFormatId = _totalsRowFormatId.HasValue ? _totalsRowFormatId.ToUInt32Value() : null;
				result.HeaderRowBorderFormatId = _headerRowBorderFormatId.HasValue ? _headerRowBorderFormatId.ToUInt32Value() : null;
				result.BorderFormatId = _borderFormatId.HasValue ? _borderFormatId.ToUInt32Value() : null;
				result.TotalsRowBorderFormatId = _totalsRowBorderFormatId.HasValue ? _totalsRowBorderFormatId.ToUInt32Value() : null;
				result.HeaderRowCellStyle = _headerRowCellStyle == null ? null : StringValue.FromString(_headerRowCellStyle);
				result.DataCellStyle = _dataCellStyle == null ? null : StringValue.FromString(_dataCellStyle);
				result.TotalsRowCellStyle = _totalsRowCellStyle == null ? null : StringValue.FromString(_totalsRowCellStyle);
				result.ConnectionId = _connectionId.HasValue ? _connectionId.ToUInt32Value() : null;
				result.AutoFilter = AutoFilter.Recompose();
				result.SortState = SortState.Recompose();
				result.TableColumns = TableColumns.Recompose();
				result.TableStyleInfo = TableStyleInfo.Recompose();
				result.TableExtensionList = TableExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return AutoFilter;
			yield return SortState;
			yield return TableColumns;
			yield return TableStyleInfo;
			yield return TableExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

		#region SequentialIdentifierPattern Implementation

		/// <summary>
		/// Assigns pattern event listeners.
		/// </summary>
		private void InitializeSequentialIdentifierPattern()
		{
			Activating += SequentialIdentifierActivating;
		}

		private static uint _lastSequence;

		/// <summary>
		/// Establishes relationships with other package content objects.
		/// </summary>
		private void SequentialIdentifierActivating()
		{
			_lastSequence = Math.Max(_lastSequence, Id.Value);
		}

		/// <summary>
		/// Creates a <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/> and assigns it the next sequential id.
		/// </summary>
		/// <returns>A new instance of <see cref="DocumentFormat.OpenXml.Spreadsheet.Table"/>.</returns>
		internal new static DocumentFormat.OpenXml.Spreadsheet.Table CreateDefaultElement()
		{
			return new DocumentFormat.OpenXml.Spreadsheet.Table() { Id = ++_lastSequence };
		}

		#endregion
	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumns"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableColumnsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableColumns>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableColumnsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumns"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableColumnsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableColumns wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumns"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumns"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TableColumnWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TableColumnWrapperCollection TableColumns { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			TableColumns = new ExtremeML.Spreadsheet.TableColumnWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			TableColumns = new ExtremeML.Spreadsheet.TableColumnWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumns"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableColumns Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableColumns();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				TableColumns.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return TableColumns;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableColumnWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableColumn>
	{
		private string _localName;
		private Nullable<uint> _id;
		private string _uniqueName;
		private string _name;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFunctionValues> _totalsRowFunction;
		private string _totalsRowLabel;
		private Nullable<uint> _queryTableFieldId;
		private Nullable<uint> _headerRowDifferentialFormattingId;
		private Nullable<uint> _dataFormatId;
		private Nullable<uint> _totalsRowDifferentialFormattingId;
		private string _headerRowCellStyle;
		private string _dataCellStyle;
		private string _totalsRowCellStyle;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableColumnWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableColumnWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableColumn wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UniqueName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string UniqueName
		{
			get { return _uniqueName; }
			set { OnUniqueNamePropertyChanging(ref value, _uniqueName); SetModified(value, _uniqueName); _uniqueName = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowFunction"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFunctionValues> TotalsRowFunction
		{
			get { return _totalsRowFunction; }
			set { OnTotalsRowFunctionPropertyChanging(ref value, _totalsRowFunction); SetModified(value, _totalsRowFunction); _totalsRowFunction = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowLabel"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string TotalsRowLabel
		{
			get { return _totalsRowLabel; }
			set { OnTotalsRowLabelPropertyChanging(ref value, _totalsRowLabel); SetModified(value, _totalsRowLabel); _totalsRowLabel = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="QueryTableFieldId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<uint> QueryTableFieldId
		{
			get { return _queryTableFieldId; }
			set { OnQueryTableFieldIdPropertyChanging(ref value, _queryTableFieldId); SetModified(value, _queryTableFieldId); _queryTableFieldId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowDifferentialFormattingId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<uint> HeaderRowDifferentialFormattingId
		{
			get { return _headerRowDifferentialFormattingId; }
			set { OnHeaderRowDifferentialFormattingIdPropertyChanging(ref value, _headerRowDifferentialFormattingId); SetModified(value, _headerRowDifferentialFormattingId); _headerRowDifferentialFormattingId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<uint> DataFormatId
		{
			get { return _dataFormatId; }
			set { OnDataFormatIdPropertyChanging(ref value, _dataFormatId); SetModified(value, _dataFormatId); _dataFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowDifferentialFormattingId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public Nullable<uint> TotalsRowDifferentialFormattingId
		{
			get { return _totalsRowDifferentialFormattingId; }
			set { OnTotalsRowDifferentialFormattingIdPropertyChanging(ref value, _totalsRowDifferentialFormattingId); SetModified(value, _totalsRowDifferentialFormattingId); _totalsRowDifferentialFormattingId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeaderRowCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string HeaderRowCellStyle
		{
			get { return _headerRowCellStyle; }
			set { OnHeaderRowCellStylePropertyChanging(ref value, _headerRowCellStyle); SetModified(value, _headerRowCellStyle); _headerRowCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string DataCellStyle
		{
			get { return _dataCellStyle; }
			set { OnDataCellStylePropertyChanging(ref value, _dataCellStyle); SetModified(value, _dataCellStyle); _dataCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TotalsRowCellStyle"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.
		/// </summary>
		public string TotalsRowCellStyle
		{
			get { return _totalsRowCellStyle; }
			set { OnTotalsRowCellStylePropertyChanging(ref value, _totalsRowCellStyle); SetModified(value, _totalsRowCellStyle); _totalsRowCellStyle = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.CalculatedColumnFormulaWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.CalculatedColumnFormulaWrapper CalculatedColumnFormula { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.TotalsRowFormulaWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.TotalsRowFormulaWrapper TotalsRowFormula { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.XmlColumnPropertiesWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.XmlColumnPropertiesWrapper XmlColumnProperties { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnUniqueNamePropertyChanging(ref string modified, string original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnTotalsRowFunctionPropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFunctionValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFunctionValues> original);
		partial void OnTotalsRowLabelPropertyChanging(ref string modified, string original);
		partial void OnQueryTableFieldIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHeaderRowDifferentialFormattingIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnDataFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnTotalsRowDifferentialFormattingIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnHeaderRowCellStylePropertyChanging(ref string modified, string original);
		partial void OnDataCellStylePropertyChanging(ref string modified, string original);
		partial void OnTotalsRowCellStylePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_uniqueName = default(string);
			_name = default(string);
			_totalsRowFunction = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFunctionValues>);
			_totalsRowLabel = default(string);
			_queryTableFieldId = default(Nullable<uint>);
			_headerRowDifferentialFormattingId = default(Nullable<uint>);
			_dataFormatId = default(Nullable<uint>);
			_totalsRowDifferentialFormattingId = default(Nullable<uint>);
			_headerRowCellStyle = default(string);
			_dataCellStyle = default(string);
			_totalsRowCellStyle = default(string);
			CalculatedColumnFormula = new ExtremeML.Spreadsheet.CalculatedColumnFormulaWrapper(null, this, Package);
			TotalsRowFormula = new ExtremeML.Spreadsheet.TotalsRowFormulaWrapper(null, this, Package);
			XmlColumnProperties = new ExtremeML.Spreadsheet.XmlColumnPropertiesWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_uniqueName = Wrapped.UniqueName == null ? null : Wrapped.UniqueName.ToString();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_totalsRowLabel = Wrapped.TotalsRowLabel == null ? null : Wrapped.TotalsRowLabel.ToString();
			_queryTableFieldId = Wrapped.QueryTableFieldId == null ? null : Wrapped.QueryTableFieldId.ToNullable();
			_headerRowDifferentialFormattingId = Wrapped.HeaderRowDifferentialFormattingId == null ? null : Wrapped.HeaderRowDifferentialFormattingId.ToNullable();
			_dataFormatId = Wrapped.DataFormatId == null ? null : Wrapped.DataFormatId.ToNullable();
			_totalsRowDifferentialFormattingId = Wrapped.TotalsRowDifferentialFormattingId == null ? null : Wrapped.TotalsRowDifferentialFormattingId.ToNullable();
			_headerRowCellStyle = Wrapped.HeaderRowCellStyle == null ? null : Wrapped.HeaderRowCellStyle.ToString();
			_dataCellStyle = Wrapped.DataCellStyle == null ? null : Wrapped.DataCellStyle.ToString();
			_totalsRowCellStyle = Wrapped.TotalsRowCellStyle == null ? null : Wrapped.TotalsRowCellStyle.ToString();
			if (Wrapped.TotalsRowFunction != null) _totalsRowFunction = Wrapped.TotalsRowFunction;
			CalculatedColumnFormula = new ExtremeML.Spreadsheet.CalculatedColumnFormulaWrapper(Wrapped.CalculatedColumnFormula, this, Package);
			TotalsRowFormula = new ExtremeML.Spreadsheet.TotalsRowFormulaWrapper(Wrapped.TotalsRowFormula, this, Package);
			XmlColumnProperties = new ExtremeML.Spreadsheet.XmlColumnPropertiesWrapper(Wrapped.XmlColumnProperties, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableColumn"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableColumn Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableColumn();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.TotalsRowFunction = _totalsRowFunction;
				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.UniqueName = _uniqueName == null ? null : StringValue.FromString(_uniqueName);
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.TotalsRowLabel = _totalsRowLabel == null ? null : StringValue.FromString(_totalsRowLabel);
				result.QueryTableFieldId = _queryTableFieldId.HasValue ? _queryTableFieldId.ToUInt32Value() : null;
				result.HeaderRowDifferentialFormattingId = _headerRowDifferentialFormattingId.HasValue ? _headerRowDifferentialFormattingId.ToUInt32Value() : null;
				result.DataFormatId = _dataFormatId.HasValue ? _dataFormatId.ToUInt32Value() : null;
				result.TotalsRowDifferentialFormattingId = _totalsRowDifferentialFormattingId.HasValue ? _totalsRowDifferentialFormattingId.ToUInt32Value() : null;
				result.HeaderRowCellStyle = _headerRowCellStyle == null ? null : StringValue.FromString(_headerRowCellStyle);
				result.DataCellStyle = _dataCellStyle == null ? null : StringValue.FromString(_dataCellStyle);
				result.TotalsRowCellStyle = _totalsRowCellStyle == null ? null : StringValue.FromString(_totalsRowCellStyle);
				result.CalculatedColumnFormula = CalculatedColumnFormula.Recompose();
				result.TotalsRowFormula = TotalsRowFormula.Recompose();
				result.XmlColumnProperties = XmlColumnProperties.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return CalculatedColumnFormula;
			yield return TotalsRowFormula;
			yield return XmlColumnProperties;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CalculatedColumnFormulaWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula>
	{
		private string _localName;
		private Nullable<bool> _array;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="CalculatedColumnFormulaWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CalculatedColumnFormulaWrapper(
			DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Array"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> instance.
		/// </summary>
		public Nullable<bool> Array
		{
			get { return _array; }
			set { OnArrayPropertyChanging(ref value, _array); SetModified(value, _array); _array = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnArrayPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_array = default(Nullable<bool>);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_array = Wrapped.Array == null ? null : Wrapped.Array.ToNullable();
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.CalculatedColumnFormula();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;
				result.Array = _array.HasValue ? _array.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TotalsRowFormulaWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula>
	{
		private string _localName;
		private Nullable<bool> _array;
		private Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> _space;

		/// <summary>
		/// Initializes a new instance of the <see cref="TotalsRowFormulaWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TotalsRowFormulaWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Array"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> instance.
		/// </summary>
		public Nullable<bool> Array
		{
			get { return _array; }
			set { OnArrayPropertyChanging(ref value, _array); SetModified(value, _array); _array = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Space"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> Space
		{
			get { return _space; }
			set { OnSpacePropertyChanging(ref value, _space); SetModified(value, _space); _space = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnArrayPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnSpacePropertyChanging(ref Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> modified, Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_array = default(Nullable<bool>);
			_space = default(Nullable<DocumentFormat.OpenXml.SpaceProcessingModeValues>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_array = Wrapped.Array == null ? null : Wrapped.Array.ToNullable();
			if (Wrapped.Space != null) _space = Wrapped.Space;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TotalsRowFormula();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Space = _space;
				result.Array = _array.HasValue ? _array.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class XmlColumnPropertiesWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties>
	{
		private string _localName;
		private Nullable<uint> _mapId;
		private string _xPath;
		private Nullable<bool> _denormalized;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.XmlDataValues> _xmlDataType;

		/// <summary>
		/// Initializes a new instance of the <see cref="XmlColumnPropertiesWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal XmlColumnPropertiesWrapper(
			DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MapId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.
		/// </summary>
		public Nullable<uint> MapId
		{
			get { return _mapId; }
			set { OnMapIdPropertyChanging(ref value, _mapId); SetModified(value, _mapId); _mapId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XPath"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.
		/// </summary>
		public string XPath
		{
			get { return _xPath; }
			set { OnXPathPropertyChanging(ref value, _xPath); SetModified(value, _xPath); _xPath = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Denormalized"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.
		/// </summary>
		public Nullable<bool> Denormalized
		{
			get { return _denormalized; }
			set { OnDenormalizedPropertyChanging(ref value, _denormalized); SetModified(value, _denormalized); _denormalized = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="XmlDataType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.XmlDataValues> XmlDataType
		{
			get { return _xmlDataType; }
			set { OnXmlDataTypePropertyChanging(ref value, _xmlDataType); SetModified(value, _xmlDataType); _xmlDataType = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnMapIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnXPathPropertyChanging(ref string modified, string original);
		partial void OnDenormalizedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnXmlDataTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.XmlDataValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.XmlDataValues> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_mapId = default(Nullable<uint>);
			_xPath = default(string);
			_denormalized = default(Nullable<bool>);
			_xmlDataType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.XmlDataValues>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_mapId = Wrapped.MapId == null ? null : Wrapped.MapId.ToNullable();
			_xPath = Wrapped.XPath == null ? null : Wrapped.XPath.ToString();
			_denormalized = Wrapped.Denormalized == null ? null : Wrapped.Denormalized.ToNullable();
			if (Wrapped.XmlDataType != null) _xmlDataType = Wrapped.XmlDataType;
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.XmlDataType = _xmlDataType;
				result.MapId = _mapId.HasValue ? _mapId.ToUInt32Value() : null;
				result.XPath = _xPath == null ? null : StringValue.FromString(_xPath);
				result.Denormalized = _denormalized.HasValue ? _denormalized.ToBooleanValue() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStyleInfoWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo>
	{
		private string _localName;
		private string _name;
		private Nullable<bool> _showFirstColumn;
		private Nullable<bool> _showLastColumn;
		private Nullable<bool> _showRowStripes;
		private Nullable<bool> _showColumnStripes;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStyleInfoWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStyleInfoWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowFirstColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public Nullable<bool> ShowFirstColumn
		{
			get { return _showFirstColumn; }
			set { OnShowFirstColumnPropertyChanging(ref value, _showFirstColumn); SetModified(value, _showFirstColumn); _showFirstColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowLastColumn"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public Nullable<bool> ShowLastColumn
		{
			get { return _showLastColumn; }
			set { OnShowLastColumnPropertyChanging(ref value, _showLastColumn); SetModified(value, _showLastColumn); _showLastColumn = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowRowStripes"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public Nullable<bool> ShowRowStripes
		{
			get { return _showRowStripes; }
			set { OnShowRowStripesPropertyChanging(ref value, _showRowStripes); SetModified(value, _showRowStripes); _showRowStripes = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ShowColumnStripes"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.
		/// </summary>
		public Nullable<bool> ShowColumnStripes
		{
			get { return _showColumnStripes; }
			set { OnShowColumnStripesPropertyChanging(ref value, _showColumnStripes); SetModified(value, _showColumnStripes); _showColumnStripes = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnShowFirstColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowLastColumnPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowRowStripesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnShowColumnStripesPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_showFirstColumn = default(Nullable<bool>);
			_showLastColumn = default(Nullable<bool>);
			_showRowStripes = default(Nullable<bool>);
			_showColumnStripes = default(Nullable<bool>);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_showFirstColumn = Wrapped.ShowFirstColumn == null ? null : Wrapped.ShowFirstColumn.ToNullable();
			_showLastColumn = Wrapped.ShowLastColumn == null ? null : Wrapped.ShowLastColumn.ToNullable();
			_showRowStripes = Wrapped.ShowRowStripes == null ? null : Wrapped.ShowRowStripes.ToNullable();
			_showColumnStripes = Wrapped.ShowColumnStripes == null ? null : Wrapped.ShowColumnStripes.ToNullable();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.ShowFirstColumn = _showFirstColumn.HasValue ? _showFirstColumn.ToBooleanValue() : null;
				result.ShowLastColumn = _showLastColumn.HasValue ? _showLastColumn.ToBooleanValue() : null;
				result.ShowRowStripes = _showRowStripes.HasValue ? _showRowStripes.ToBooleanValue() : null;
				result.ShowColumnStripes = _showColumnStripes.HasValue ? _showColumnStripes.ToBooleanValue() : null;

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.TableExtensionList"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableExtensionListWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.TableExtensionList>
	{
		private string _localName;

		/// <summary>
		/// Initializes a new instance of the <see cref="TableExtensionListWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.TableExtensionList"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableExtensionListWrapper(
			DocumentFormat.OpenXml.Spreadsheet.TableExtensionList wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.TableExtensionList"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.TableExtensionList"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.TableExtensionList Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.TableExtensionList();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);


				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.QueryTable>
	{
		private string _localName;
		private string _name;
		private Nullable<bool> _headers;
		private Nullable<bool> _rowNumbers;
		private Nullable<bool> _disableRefresh;
		private Nullable<bool> _backgroundRefresh;
		private Nullable<bool> _firstBackgroundRefresh;
		private Nullable<bool> _refreshOnLoad;
		private Nullable<DocumentFormat.OpenXml.Spreadsheet.GrowShrinkValues> _growShrinkType;
		private Nullable<bool> _fillFormulas;
		private Nullable<bool> _removeDataOnSave;
		private Nullable<bool> _disableEdit;
		private Nullable<bool> _preserveFormatting;
		private Nullable<bool> _adjustColumnWidth;
		private Nullable<bool> _intermediate;
		private Nullable<uint> _connectionId;
		private Nullable<uint> _autoFormatId;
		private Nullable<bool> _applyNumberFormats;
		private Nullable<bool> _applyBorderFormats;
		private Nullable<bool> _applyFontFormats;
		private Nullable<bool> _applyPatternFormats;
		private Nullable<bool> _applyAlignmentFormats;
		private Nullable<bool> _applyWidthHeightFormats;

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableWrapper(
			DocumentFormat.OpenXml.Spreadsheet.QueryTable wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Headers"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> Headers
		{
			get { return _headers; }
			set { OnHeadersPropertyChanging(ref value, _headers); SetModified(value, _headers); _headers = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RowNumbers"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> RowNumbers
		{
			get { return _rowNumbers; }
			set { OnRowNumbersPropertyChanging(ref value, _rowNumbers); SetModified(value, _rowNumbers); _rowNumbers = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DisableRefresh"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> DisableRefresh
		{
			get { return _disableRefresh; }
			set { OnDisableRefreshPropertyChanging(ref value, _disableRefresh); SetModified(value, _disableRefresh); _disableRefresh = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="BackgroundRefresh"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> BackgroundRefresh
		{
			get { return _backgroundRefresh; }
			set { OnBackgroundRefreshPropertyChanging(ref value, _backgroundRefresh); SetModified(value, _backgroundRefresh); _backgroundRefresh = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FirstBackgroundRefresh"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> FirstBackgroundRefresh
		{
			get { return _firstBackgroundRefresh; }
			set { OnFirstBackgroundRefreshPropertyChanging(ref value, _firstBackgroundRefresh); SetModified(value, _firstBackgroundRefresh); _firstBackgroundRefresh = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RefreshOnLoad"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> RefreshOnLoad
		{
			get { return _refreshOnLoad; }
			set { OnRefreshOnLoadPropertyChanging(ref value, _refreshOnLoad); SetModified(value, _refreshOnLoad); _refreshOnLoad = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="GrowShrinkType"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<DocumentFormat.OpenXml.Spreadsheet.GrowShrinkValues> GrowShrinkType
		{
			get { return _growShrinkType; }
			set { OnGrowShrinkTypePropertyChanging(ref value, _growShrinkType); SetModified(value, _growShrinkType); _growShrinkType = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FillFormulas"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> FillFormulas
		{
			get { return _fillFormulas; }
			set { OnFillFormulasPropertyChanging(ref value, _fillFormulas); SetModified(value, _fillFormulas); _fillFormulas = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RemoveDataOnSave"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> RemoveDataOnSave
		{
			get { return _removeDataOnSave; }
			set { OnRemoveDataOnSavePropertyChanging(ref value, _removeDataOnSave); SetModified(value, _removeDataOnSave); _removeDataOnSave = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DisableEdit"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> DisableEdit
		{
			get { return _disableEdit; }
			set { OnDisableEditPropertyChanging(ref value, _disableEdit); SetModified(value, _disableEdit); _disableEdit = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PreserveFormatting"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> PreserveFormatting
		{
			get { return _preserveFormatting; }
			set { OnPreserveFormattingPropertyChanging(ref value, _preserveFormatting); SetModified(value, _preserveFormatting); _preserveFormatting = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AdjustColumnWidth"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> AdjustColumnWidth
		{
			get { return _adjustColumnWidth; }
			set { OnAdjustColumnWidthPropertyChanging(ref value, _adjustColumnWidth); SetModified(value, _adjustColumnWidth); _adjustColumnWidth = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Intermediate"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> Intermediate
		{
			get { return _intermediate; }
			set { OnIntermediatePropertyChanging(ref value, _intermediate); SetModified(value, _intermediate); _intermediate = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ConnectionId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<uint> ConnectionId
		{
			get { return _connectionId; }
			set { OnConnectionIdPropertyChanging(ref value, _connectionId); SetModified(value, _connectionId); _connectionId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="AutoFormatId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<uint> AutoFormatId
		{
			get { return _autoFormatId; }
			set { OnAutoFormatIdPropertyChanging(ref value, _autoFormatId); SetModified(value, _autoFormatId); _autoFormatId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyNumberFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyNumberFormats
		{
			get { return _applyNumberFormats; }
			set { OnApplyNumberFormatsPropertyChanging(ref value, _applyNumberFormats); SetModified(value, _applyNumberFormats); _applyNumberFormats = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyBorderFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyBorderFormats
		{
			get { return _applyBorderFormats; }
			set { OnApplyBorderFormatsPropertyChanging(ref value, _applyBorderFormats); SetModified(value, _applyBorderFormats); _applyBorderFormats = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyFontFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyFontFormats
		{
			get { return _applyFontFormats; }
			set { OnApplyFontFormatsPropertyChanging(ref value, _applyFontFormats); SetModified(value, _applyFontFormats); _applyFontFormats = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyPatternFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyPatternFormats
		{
			get { return _applyPatternFormats; }
			set { OnApplyPatternFormatsPropertyChanging(ref value, _applyPatternFormats); SetModified(value, _applyPatternFormats); _applyPatternFormats = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyAlignmentFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyAlignmentFormats
		{
			get { return _applyAlignmentFormats; }
			set { OnApplyAlignmentFormatsPropertyChanging(ref value, _applyAlignmentFormats); SetModified(value, _applyAlignmentFormats); _applyAlignmentFormats = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="ApplyWidthHeightFormats"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> instance.
		/// </summary>
		public Nullable<bool> ApplyWidthHeightFormats
		{
			get { return _applyWidthHeightFormats; }
			set { OnApplyWidthHeightFormatsPropertyChanging(ref value, _applyWidthHeightFormats); SetModified(value, _applyWidthHeightFormats); _applyWidthHeightFormats = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.QueryTableRefreshWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.QueryTableRefreshWrapper QueryTableRefresh { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnHeadersPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRowNumbersPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDisableRefreshPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnBackgroundRefreshPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFirstBackgroundRefreshPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRefreshOnLoadPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnGrowShrinkTypePropertyChanging(ref Nullable<DocumentFormat.OpenXml.Spreadsheet.GrowShrinkValues> modified, Nullable<DocumentFormat.OpenXml.Spreadsheet.GrowShrinkValues> original);
		partial void OnFillFormulasPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRemoveDataOnSavePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnDisableEditPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnPreserveFormattingPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnAdjustColumnWidthPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnIntermediatePropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnConnectionIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnAutoFormatIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnApplyNumberFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyBorderFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyFontFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyPatternFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyAlignmentFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnApplyWidthHeightFormatsPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
			_headers = default(Nullable<bool>);
			_rowNumbers = default(Nullable<bool>);
			_disableRefresh = default(Nullable<bool>);
			_backgroundRefresh = default(Nullable<bool>);
			_firstBackgroundRefresh = default(Nullable<bool>);
			_refreshOnLoad = default(Nullable<bool>);
			_growShrinkType = default(Nullable<DocumentFormat.OpenXml.Spreadsheet.GrowShrinkValues>);
			_fillFormulas = default(Nullable<bool>);
			_removeDataOnSave = default(Nullable<bool>);
			_disableEdit = default(Nullable<bool>);
			_preserveFormatting = default(Nullable<bool>);
			_adjustColumnWidth = default(Nullable<bool>);
			_intermediate = default(Nullable<bool>);
			_connectionId = default(Nullable<uint>);
			_autoFormatId = default(Nullable<uint>);
			_applyNumberFormats = default(Nullable<bool>);
			_applyBorderFormats = default(Nullable<bool>);
			_applyFontFormats = default(Nullable<bool>);
			_applyPatternFormats = default(Nullable<bool>);
			_applyAlignmentFormats = default(Nullable<bool>);
			_applyWidthHeightFormats = default(Nullable<bool>);
			QueryTableRefresh = new ExtremeML.Spreadsheet.QueryTableRefreshWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_headers = Wrapped.Headers == null ? null : Wrapped.Headers.ToNullable();
			_rowNumbers = Wrapped.RowNumbers == null ? null : Wrapped.RowNumbers.ToNullable();
			_disableRefresh = Wrapped.DisableRefresh == null ? null : Wrapped.DisableRefresh.ToNullable();
			_backgroundRefresh = Wrapped.BackgroundRefresh == null ? null : Wrapped.BackgroundRefresh.ToNullable();
			_firstBackgroundRefresh = Wrapped.FirstBackgroundRefresh == null ? null : Wrapped.FirstBackgroundRefresh.ToNullable();
			_refreshOnLoad = Wrapped.RefreshOnLoad == null ? null : Wrapped.RefreshOnLoad.ToNullable();
			_fillFormulas = Wrapped.FillFormulas == null ? null : Wrapped.FillFormulas.ToNullable();
			_removeDataOnSave = Wrapped.RemoveDataOnSave == null ? null : Wrapped.RemoveDataOnSave.ToNullable();
			_disableEdit = Wrapped.DisableEdit == null ? null : Wrapped.DisableEdit.ToNullable();
			_preserveFormatting = Wrapped.PreserveFormatting == null ? null : Wrapped.PreserveFormatting.ToNullable();
			_adjustColumnWidth = Wrapped.AdjustColumnWidth == null ? null : Wrapped.AdjustColumnWidth.ToNullable();
			_intermediate = Wrapped.Intermediate == null ? null : Wrapped.Intermediate.ToNullable();
			_connectionId = Wrapped.ConnectionId == null ? null : Wrapped.ConnectionId.ToNullable();
			_autoFormatId = Wrapped.AutoFormatId == null ? null : Wrapped.AutoFormatId.ToNullable();
			_applyNumberFormats = Wrapped.ApplyNumberFormats == null ? null : Wrapped.ApplyNumberFormats.ToNullable();
			_applyBorderFormats = Wrapped.ApplyBorderFormats == null ? null : Wrapped.ApplyBorderFormats.ToNullable();
			_applyFontFormats = Wrapped.ApplyFontFormats == null ? null : Wrapped.ApplyFontFormats.ToNullable();
			_applyPatternFormats = Wrapped.ApplyPatternFormats == null ? null : Wrapped.ApplyPatternFormats.ToNullable();
			_applyAlignmentFormats = Wrapped.ApplyAlignmentFormats == null ? null : Wrapped.ApplyAlignmentFormats.ToNullable();
			_applyWidthHeightFormats = Wrapped.ApplyWidthHeightFormats == null ? null : Wrapped.ApplyWidthHeightFormats.ToNullable();
			if (Wrapped.GrowShrinkType != null) _growShrinkType = Wrapped.GrowShrinkType;
			QueryTableRefresh = new ExtremeML.Spreadsheet.QueryTableRefreshWrapper(Wrapped.QueryTableRefresh, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Populates the passed root element from the properties of this instance.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTable"/> to populate.</param>
		internal void Recompose(
			DocumentFormat.OpenXml.Spreadsheet.QueryTable wrapped)
		{
			var result = wrapped;

			if (IsPopulated())
			{
				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.GrowShrinkType = _growShrinkType;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.Headers = _headers.HasValue ? _headers.ToBooleanValue() : null;
				result.RowNumbers = _rowNumbers.HasValue ? _rowNumbers.ToBooleanValue() : null;
				result.DisableRefresh = _disableRefresh.HasValue ? _disableRefresh.ToBooleanValue() : null;
				result.BackgroundRefresh = _backgroundRefresh.HasValue ? _backgroundRefresh.ToBooleanValue() : null;
				result.FirstBackgroundRefresh = _firstBackgroundRefresh.HasValue ? _firstBackgroundRefresh.ToBooleanValue() : null;
				result.RefreshOnLoad = _refreshOnLoad.HasValue ? _refreshOnLoad.ToBooleanValue() : null;
				result.FillFormulas = _fillFormulas.HasValue ? _fillFormulas.ToBooleanValue() : null;
				result.RemoveDataOnSave = _removeDataOnSave.HasValue ? _removeDataOnSave.ToBooleanValue() : null;
				result.DisableEdit = _disableEdit.HasValue ? _disableEdit.ToBooleanValue() : null;
				result.PreserveFormatting = _preserveFormatting.HasValue ? _preserveFormatting.ToBooleanValue() : null;
				result.AdjustColumnWidth = _adjustColumnWidth.HasValue ? _adjustColumnWidth.ToBooleanValue() : null;
				result.Intermediate = _intermediate.HasValue ? _intermediate.ToBooleanValue() : null;
				result.ConnectionId = _connectionId.HasValue ? _connectionId.ToUInt32Value() : null;
				result.AutoFormatId = _autoFormatId.HasValue ? _autoFormatId.ToUInt32Value() : null;
				result.ApplyNumberFormats = _applyNumberFormats.HasValue ? _applyNumberFormats.ToBooleanValue() : null;
				result.ApplyBorderFormats = _applyBorderFormats.HasValue ? _applyBorderFormats.ToBooleanValue() : null;
				result.ApplyFontFormats = _applyFontFormats.HasValue ? _applyFontFormats.ToBooleanValue() : null;
				result.ApplyPatternFormats = _applyPatternFormats.HasValue ? _applyPatternFormats.ToBooleanValue() : null;
				result.ApplyAlignmentFormats = _applyAlignmentFormats.HasValue ? _applyAlignmentFormats.ToBooleanValue() : null;
				result.ApplyWidthHeightFormats = _applyWidthHeightFormats.HasValue ? _applyWidthHeightFormats.ToBooleanValue() : null;
				result.QueryTableRefresh = QueryTableRefresh.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}
		}
		
		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return QueryTableRefresh;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableRefreshWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh>
	{
		private string _localName;
		private Nullable<bool> _preserveSortFilterLayout;
		private Nullable<bool> _fieldIdWrapped;
		private Nullable<bool> _headersInLastRefresh;
		private Nullable<byte> _minimumVersion;
		private Nullable<uint> _nextId;
		private Nullable<uint> _unboundColumnsLeft;
		private Nullable<uint> _unboundColumnsRight;

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableRefreshWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableRefreshWrapper(
			DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="PreserveSortFilterLayout"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<bool> PreserveSortFilterLayout
		{
			get { return _preserveSortFilterLayout; }
			set { OnPreserveSortFilterLayoutPropertyChanging(ref value, _preserveSortFilterLayout); SetModified(value, _preserveSortFilterLayout); _preserveSortFilterLayout = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FieldIdWrapped"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<bool> FieldIdWrapped
		{
			get { return _fieldIdWrapped; }
			set { OnFieldIdWrappedPropertyChanging(ref value, _fieldIdWrapped); SetModified(value, _fieldIdWrapped); _fieldIdWrapped = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="HeadersInLastRefresh"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<bool> HeadersInLastRefresh
		{
			get { return _headersInLastRefresh; }
			set { OnHeadersInLastRefreshPropertyChanging(ref value, _headersInLastRefresh); SetModified(value, _headersInLastRefresh); _headersInLastRefresh = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="MinimumVersion"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<byte> MinimumVersion
		{
			get { return _minimumVersion; }
			set { OnMinimumVersionPropertyChanging(ref value, _minimumVersion); SetModified(value, _minimumVersion); _minimumVersion = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="NextId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<uint> NextId
		{
			get { return _nextId; }
			set { OnNextIdPropertyChanging(ref value, _nextId); SetModified(value, _nextId); _nextId = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UnboundColumnsLeft"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<uint> UnboundColumnsLeft
		{
			get { return _unboundColumnsLeft; }
			set { OnUnboundColumnsLeftPropertyChanging(ref value, _unboundColumnsLeft); SetModified(value, _unboundColumnsLeft); _unboundColumnsLeft = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="UnboundColumnsRight"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.
		/// </summary>
		public Nullable<uint> UnboundColumnsRight
		{
			get { return _unboundColumnsRight; }
			set { OnUnboundColumnsRightPropertyChanging(ref value, _unboundColumnsRight); SetModified(value, _unboundColumnsRight); _unboundColumnsRight = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.QueryTableFieldsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.QueryTableFieldsWrapper QueryTableFields { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.QueryTableDeletedFieldsWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.QueryTableDeletedFieldsWrapper QueryTableDeletedFields { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.SortStateWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.SortStateWrapper SortState { get; private set; }
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnPreserveSortFilterLayoutPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFieldIdWrappedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnHeadersInLastRefreshPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnMinimumVersionPropertyChanging(ref Nullable<byte> modified, Nullable<byte> original);
		partial void OnNextIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnUnboundColumnsLeftPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnUnboundColumnsRightPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_preserveSortFilterLayout = default(Nullable<bool>);
			_fieldIdWrapped = default(Nullable<bool>);
			_headersInLastRefresh = default(Nullable<bool>);
			_minimumVersion = default(Nullable<byte>);
			_nextId = default(Nullable<uint>);
			_unboundColumnsLeft = default(Nullable<uint>);
			_unboundColumnsRight = default(Nullable<uint>);
			QueryTableFields = new ExtremeML.Spreadsheet.QueryTableFieldsWrapper(null, this, Package);
			QueryTableDeletedFields = new ExtremeML.Spreadsheet.QueryTableDeletedFieldsWrapper(null, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(null, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_preserveSortFilterLayout = Wrapped.PreserveSortFilterLayout == null ? null : Wrapped.PreserveSortFilterLayout.ToNullable();
			_fieldIdWrapped = Wrapped.FieldIdWrapped == null ? null : Wrapped.FieldIdWrapped.ToNullable();
			_headersInLastRefresh = Wrapped.HeadersInLastRefresh == null ? null : Wrapped.HeadersInLastRefresh.ToNullable();
			_minimumVersion = Wrapped.MinimumVersion == null ? null : Wrapped.MinimumVersion.ToNullable();
			_nextId = Wrapped.NextId == null ? null : Wrapped.NextId.ToNullable();
			_unboundColumnsLeft = Wrapped.UnboundColumnsLeft == null ? null : Wrapped.UnboundColumnsLeft.ToNullable();
			_unboundColumnsRight = Wrapped.UnboundColumnsRight == null ? null : Wrapped.UnboundColumnsRight.ToNullable();
			QueryTableFields = new ExtremeML.Spreadsheet.QueryTableFieldsWrapper(Wrapped.QueryTableFields, this, Package);
			QueryTableDeletedFields = new ExtremeML.Spreadsheet.QueryTableDeletedFieldsWrapper(Wrapped.QueryTableDeletedFields, this, Package);
			SortState = new ExtremeML.Spreadsheet.SortStateWrapper(Wrapped.SortState, this, Package);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.PreserveSortFilterLayout = _preserveSortFilterLayout.HasValue ? _preserveSortFilterLayout.ToBooleanValue() : null;
				result.FieldIdWrapped = _fieldIdWrapped.HasValue ? _fieldIdWrapped.ToBooleanValue() : null;
				result.HeadersInLastRefresh = _headersInLastRefresh.HasValue ? _headersInLastRefresh.ToBooleanValue() : null;
				result.MinimumVersion = _minimumVersion.HasValue ? _minimumVersion.ToByteValue() : null;
				result.NextId = _nextId.HasValue ? _nextId.ToUInt32Value() : null;
				result.UnboundColumnsLeft = _unboundColumnsLeft.HasValue ? _unboundColumnsLeft.ToUInt32Value() : null;
				result.UnboundColumnsRight = _unboundColumnsRight.HasValue ? _unboundColumnsRight.ToUInt32Value() : null;
				result.QueryTableFields = QueryTableFields.Recompose();
				result.QueryTableDeletedFields = QueryTableDeletedFields.Recompose();
				result.SortState = SortState.Recompose();
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return QueryTableFields;
			yield return QueryTableDeletedFields;
			yield return SortState;
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableDeletedFieldsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableDeletedFieldsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableDeletedFieldsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.DeletedFieldWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.DeletedFieldWrapperCollection DeletedFields { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			DeletedFields = new ExtremeML.Spreadsheet.DeletedFieldWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			DeletedFields = new ExtremeML.Spreadsheet.DeletedFieldWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.QueryTableDeletedFields();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				DeletedFields.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return DeletedFields;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.DeletedField"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DeletedFieldWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.DeletedField>
	{
		private string _localName;
		private string _name;

		/// <summary>
		/// Initializes a new instance of the <see cref="DeletedFieldWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.DeletedField"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DeletedFieldWrapper(
			DocumentFormat.OpenXml.Spreadsheet.DeletedField wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DeletedField"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.DeletedField"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnNamePropertyChanging(ref string modified, string original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_name = default(string);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.DeletedField"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.DeletedField Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.DeletedField();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Name = _name == null ? null : StringValue.FromString(_name);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableFields"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableFieldsWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.QueryTableFields>
	{
		private string _localName;
		private Nullable<uint> _count;

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableFieldsWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableFields"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableFieldsWrapper(
			DocumentFormat.OpenXml.Spreadsheet.QueryTableFields wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableFields"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Count"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableFields"/> instance.
		/// </summary>
		public Nullable<uint> Count
		{
			get { return _count; }
			set { OnCountPropertyChanging(ref value, _count); SetModified(value, _count); _count = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.QueryTableFieldWrapperCollection"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.QueryTableFieldWrapperCollection QueryTableFields { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnCountPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_count = default(Nullable<uint>);
			QueryTableFields = new ExtremeML.Spreadsheet.QueryTableFieldWrapperCollection(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_count = Wrapped.Count == null ? null : Wrapped.Count.ToNullable();
			QueryTableFields = new ExtremeML.Spreadsheet.QueryTableFieldWrapperCollection(Wrapped, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableFields"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.QueryTableFields Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.QueryTableFields();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Count = _count.HasValue ? _count.ToUInt32Value() : null;
				QueryTableFields.Recompose(result);

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return QueryTableFields;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Wraps a <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> and exposes its content as an object graph.
	/// </summary>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableFieldWrapper : ElementWrapper<DocumentFormat.OpenXml.Spreadsheet.QueryTableField>
	{
		private string _localName;
		private Nullable<uint> _id;
		private string _name;
		private Nullable<bool> _dataBound;
		private Nullable<bool> _rowNumbers;
		private Nullable<bool> _fillFormulas;
		private Nullable<bool> _clipped;
		private Nullable<uint> _tableColumnId;

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableFieldWrapper"/> class.
		/// </summary>
		/// <param name="wrapped">A <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableFieldWrapper(
			DocumentFormat.OpenXml.Spreadsheet.QueryTableField wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
	
		/// <summary>
		/// Gets the value of the <see cref="LocalName"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public string LocalName
		{
			get { return _localName; }
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Id"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<uint> Id
		{
			get { return _id; }
			set { OnIdPropertyChanging(ref value, _id); SetModified(value, _id); _id = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Name"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public string Name
		{
			get { return _name; }
			set { OnNamePropertyChanging(ref value, _name); SetModified(value, _name); _name = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="DataBound"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<bool> DataBound
		{
			get { return _dataBound; }
			set { OnDataBoundPropertyChanging(ref value, _dataBound); SetModified(value, _dataBound); _dataBound = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="RowNumbers"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<bool> RowNumbers
		{
			get { return _rowNumbers; }
			set { OnRowNumbersPropertyChanging(ref value, _rowNumbers); SetModified(value, _rowNumbers); _rowNumbers = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="FillFormulas"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<bool> FillFormulas
		{
			get { return _fillFormulas; }
			set { OnFillFormulasPropertyChanging(ref value, _fillFormulas); SetModified(value, _fillFormulas); _fillFormulas = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="Clipped"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<bool> Clipped
		{
			get { return _clipped; }
			set { OnClippedPropertyChanging(ref value, _clipped); SetModified(value, _clipped); _clipped = value; }	
		}
		
		/// <summary>
		/// Gets or sets the value of the <see cref="TableColumnId"/> property of the wrapped <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.
		/// </summary>
		public Nullable<uint> TableColumnId
		{
			get { return _tableColumnId; }
			set { OnTableColumnIdPropertyChanging(ref value, _tableColumnId); SetModified(value, _tableColumnId); _tableColumnId = value; }	
		}
		
		/// <summary>
		/// Gets the contained <see cref="ExtremeML.Spreadsheet.ExtensionListWrapper"/> instance.
		/// </summary>
		public ExtremeML.Spreadsheet.ExtensionListWrapper ExtensionList { get; private set; }
		
		// Partial methods to allow property validation to be applied in the custom partial class.
		partial void OnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);
		partial void OnNamePropertyChanging(ref string modified, string original);
		partial void OnDataBoundPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnRowNumbersPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnFillFormulasPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnClippedPropertyChanging(ref Nullable<bool> modified, Nullable<bool> original);
		partial void OnTableColumnIdPropertyChanging(ref Nullable<uint> modified, Nullable<uint> original);

		/// <summary>
		/// Clears the content of this instance and populates it using default values.
		/// </summary>
		protected override void OnInitializing()
		{
			base.OnInitializing();
	
			_localName = default(string);
			_id = default(Nullable<uint>);
			_name = default(string);
			_dataBound = default(Nullable<bool>);
			_rowNumbers = default(Nullable<bool>);
			_fillFormulas = default(Nullable<bool>);
			_clipped = default(Nullable<bool>);
			_tableColumnId = default(Nullable<uint>);
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(null, this, Package);
		}

		/// <summary>
		/// Decomposes the wrapped content object into the properties of this instance.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
	
			_localName = Wrapped.LocalName;
			_id = Wrapped.Id == null ? null : Wrapped.Id.ToNullable();
			_name = Wrapped.Name == null ? null : Wrapped.Name.ToString();
			_dataBound = Wrapped.DataBound == null ? null : Wrapped.DataBound.ToNullable();
			_rowNumbers = Wrapped.RowNumbers == null ? null : Wrapped.RowNumbers.ToNullable();
			_fillFormulas = Wrapped.FillFormulas == null ? null : Wrapped.FillFormulas.ToNullable();
			_clipped = Wrapped.Clipped == null ? null : Wrapped.Clipped.ToNullable();
			_tableColumnId = Wrapped.TableColumnId == null ? null : Wrapped.TableColumnId.ToNullable();
			ExtensionList = new ExtremeML.Spreadsheet.ExtensionListWrapper(Wrapped.ExtensionList, this, Package);
		}
		
		/// <summary>
		/// Re-creates the wrapped content object from the properties of this instance.
		/// </summary>
		/// <returns>The re-created <see cref="DocumentFormat.OpenXml.Spreadsheet.QueryTableField"/> instance.</returns>
		internal DocumentFormat.OpenXml.Spreadsheet.QueryTableField Recompose()
		{
			var result = Wrapped;

			if (IsPopulated())
			{
				result = result ?? new DocumentFormat.OpenXml.Spreadsheet.QueryTableField();

				OnCustomRecomposing(result);
				if (Recomposing != null) Recomposing(result);

				result.Id = _id.HasValue ? _id.ToUInt32Value() : null;
				result.Name = _name == null ? null : StringValue.FromString(_name);
				result.DataBound = _dataBound.HasValue ? _dataBound.ToBooleanValue() : null;
				result.RowNumbers = _rowNumbers.HasValue ? _rowNumbers.ToBooleanValue() : null;
				result.FillFormulas = _fillFormulas.HasValue ? _fillFormulas.ToBooleanValue() : null;
				result.Clipped = _clipped.HasValue ? _clipped.ToBooleanValue() : null;
				result.TableColumnId = _tableColumnId.HasValue ? _tableColumnId.ToUInt32Value() : null;
				result.ExtensionList = ExtensionList.Recompose();

				OnCustomRecomposed(result);
				if (Recomposed != null) Recomposed(result);
			}

			return result;
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event WrappedContentEventHandler Recomposed;

		/// <summary>
		/// Returns the set of <see cref="IContentWrapper"/> that are exposed as properties.
		/// </summary>
		protected override IEnumerable<IWrapper> GetWrapperMembers()
		{
			yield return ExtensionList;

			foreach (var member in GetCustomWrapperMembers())
			{
				yield return member;
			}
		}

	}
}	

